1. 17 3月, 2011 7 次提交
  2. 25 11月, 2010 1 次提交
  3. 02 2月, 2010 1 次提交
  4. 12 12月, 2009 1 次提交
  5. 16 11月, 2009 1 次提交
    • J
      genksyms: Mark is_reserved_word static · ed9df091
      Josh Triplett 提交于
      The genksyms keyword gperf hash provides a function is_reserved_word.
      genksyms #includes the resulting generated file keywords.c, so the
      function gets used only in the same source file that defines it.  Mark
      is_reserved_word static, and regenerate the corresponding generated
      file.
      Signed-off-by: NJosh Triplett <josh@joshtriplett.org>
      ed9df091
  6. 23 9月, 2009 1 次提交
  7. 15 1月, 2009 1 次提交
  8. 20 12月, 2008 2 次提交
    • J
      allow stripping of generated symbols under CONFIG_KALLSYMS_ALL · 9bb48247
      Jan Beulich 提交于
      Building upon parts of the module stripping patch, this patch
      introduces similar stripping for vmlinux when CONFIG_KALLSYMS_ALL=y.
      Using CONFIG_KALLSYMS_STRIP_GENERATED reduces the overhead of
      CONFIG_KALLSYMS_ALL from 245k/310k to 65k/80k for the (i386/x86-64)
      kernels I tested with.
      
      The patch also does away with the need to special case the kallsyms-
      internal symbols by making them available even in the first linking
      stage.
      
      While it is a generated file, the patch includes the changes to
      scripts/genksyms/keywords.c_shipped, as I'm unsure what the procedure
      here is.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      9bb48247
    • J
      kbuild: strip generated symbols from *.ko · ad7a953c
      Jan Beulich 提交于
      This patch changes the way __crc_ symbols are being resolved from
      using ld to do so to using the assembler, thus allowing these symbols
      to be marked local (the linker creates then as global ones) and hence
      allow stripping (for modules) or ignoring (for vmlinux) them. While at
      this, also strip other generated symbols during module installation.
      
      One potentially debatable point is the handling of the flags passeed
      to gcc when translating the intermediate assembly file into an object:
      passing $(c_flags) unchanged doesn't work as gcc passes --gdwarf2 to
      gas whenever is sees any -g* option, even for -g0, and despite the
      fact that the compiler would have already produced all necessary debug
      info in the C->assembly translation phase. I took the approach of just
      filtering out all -g* options, but an alternative to such negative
      filtering might be to have a positive filter which might, in the ideal
      case allow just all the -Wa,* options to pass through.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      ad7a953c
  9. 04 12月, 2008 2 次提交
    • A
      genksyms: allow to ignore symbol checksum changes · 5dae9a55
      Andreas Gruenbacher 提交于
      This adds an "override" keyword for use in *.symvers / *.symref files.
      When a symbol is overridden, the symbol's old definition will be used for
      computing checksums instead of the new one, preserving the previous
      checksum.  (Genksyms will still warn about the change.)
      
      This is meant to allow distributions to hide minor actual as well as fake
      ABI changes.  (For example, when extra type information becomes available
      because additional headers are included, this may change checksums even
      though none of the types used have actully changed.)
      
      This approach also allows to get rid of "#ifdef __GENKSYMS__" hacks in the
      code, which are currently used in some vendor kernels to work around
      checksum changes.
      Signed-off-by: NAndreas Gruenbacher <agruen@suse.de>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      5dae9a55
    • A
      genksyms: track symbol checksum changes · 64e6c1e1
      Andreas Gruenbacher 提交于
      Sometimes it is preferable to avoid changes of exported symbol checksums
      (to avoid breaking externally provided modules).  When a checksum change
      occurs, it can be hard to figure out what caused this change: underlying
      types may have changed, or additional type information may simply have
      become available at the point where a symbol is exported.
      
      Add a new --reference option to genksyms which allows it to report why
      checksums change, based on the type information dumps it creates with the
      --dump-types flag.  Genksyms will read in such a dump from a previous run,
      and report which symbols have changed (and why).
      
      The behavior can be controlled for an entire build as follows: If
      KBUILD_SYMTYPES is set, genksyms uses --dump-types to produce *.symtypes
      dump files.  If any *.symref files exist, those will be used as the
      reference to check against.  If KBUILD_PRESERVE is set, checksum changes
      will fail the build.
      Signed-off-by: NAndreas Gruenbacher <agruen@suse.de>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      64e6c1e1
  10. 01 8月, 2008 2 次提交
    • A
      kbuild: genksyms: Include extern information in dumps · 3b40d381
      Andreas Gruenbacher 提交于
      The extern flag currently is not included in type dump files
      (genksyms --dump-types). Include that flag there for completeness.
      Signed-off-by: NAndreas Gruenbacher <agruen@suse.de>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      3b40d381
    • A
      kbuild: genksyms parser: fix the __attribute__ rule · 94aa3d71
      Andreas Gruenbacher 提交于
      We are having two kinds of problems with genksyms today: fake checksum
      changes without actual ABI changes, and changes which we would rather like
      to ignore (such as an additional field at the end of a structure that
      modules are not supposed to touch, for example).
      
      I have thought about ways to improve genksyms and compute checksums
      differently to avoid those problems, but in the end I don't see a
      fundamentally better way.  So here are some genksyms patches for at least
      making the checksums more easily manageable, if we cannot fully fix them.
      
      In addition to the bugfixes (the first two patches), this allows genksyms
      to track checksum changes and report why a checksum changed (third patch),
      and to selectively ignore changes (fourth patch).
      
      This patch:
      
      Gcc __attribute__ definitions may occur repeatedly, e.g.,
      
      	static int foo __attribute__((__used__))
      		       __attribute__((aligned (16)));
      
      The genksyms parser does not understand this, and generates a syntax error.
      Fix this case.
      Signed-off-by: NAndreas Gruenbacher <agruen@suse.de>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      94aa3d71
  11. 31 7月, 2008 1 次提交
  12. 25 7月, 2008 1 次提交
  13. 29 1月, 2008 1 次提交
  14. 13 10月, 2007 3 次提交
    • S
      kbuild: apply genksyms changes · 70f75246
      Sam Ravnborg 提交于
      This patch updates the _shipped files for genksyms.
      See previous patch for actual functional changes.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      70f75246
    • S
      kbuild: __extension__ support in genksyms (fix unknown CRC warning) · 3550a516
      Sam Ravnborg 提交于
      Recently the __extension__ keyword has been introduced in the kernel.
      Teach genksyms about this keyword so it can generate correct CRC for
      exported symbols that uses a symbol marked __extension__.
      For now only the typedef variant:
      
      	__extension__ typedef ...
      
      is supported.
      Later we may add more variants as needed.
      
      This patch contains the actual source file changes. The
      following patch will hold modifications to the generated
      files (*_shipped) and only after the second patch the fix
      has effect.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      3550a516
    • S
      kbuild: fix genksyms Makefile · a3a6261a
      Sam Ravnborg 提交于
      When enabling GENERATE_PARSER the genksyms Makefile
      failed to create _shipped version of generated files.
      
      Modifying keywords.gperf failed to cause a rebuild
      of genksyms.
      Fixed by specifying keywowrds .c as explicit prerequisite
      of the lexer.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      a3a6261a
  15. 08 5月, 2007 1 次提交
  16. 25 6月, 2006 2 次提交
    • S
      kbuild: replace abort() with exit(1) · 6803dc0e
      Sam Ravnborg 提交于
      We have had no use of the coredump file for a long time.
      So just exit(1) and avoid coredumping.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      6803dc0e
    • A
      kbuild: support for %.symtypes files · 15fde675
      Andreas Gruenbacher 提交于
      Here is a patch that adds a new -T option to genksyms for generating dumps of
      the type definition that makes up the symbol version hashes. This allows to
      trace modversion changes back to what caused them. The dump format is the
      name of the type defined, followed by its definition (which is almost C):
      
        s#list_head struct list_head { s#list_head * next , * prev ; }
      
      The s#, u#, e#, and t# prefixes stand for struct, union, enum, and typedef.
      The exported symbols do not define types, and thus do not have an x# prefix:
      
        nfs4_acl_get_whotype int nfs4_acl_get_whotype ( char * , t#u32 )
      
      The symbol type defintion of a single file can be generated with:
      
        make fs/jbd/journal.symtypes
      
      If KBUILD_SYMTYPES is defined, all the *.symtypes of all object files that
      export symbols are generated.
      
      The single *.symtypes files can be combined into a single file after a kernel
      build with a script like the following:
      
      for f in $(find -name '*.symtypes' | sort); do
          f=${f#./}
          echo "/* ${f%.symtypes}.o */"
          cat $f
          echo
      done \
      | sed -e '\:UNKNOWN:d' \
            -e 's:[,;] }:}:g' \
            -e 's:\([[({]\) :\1:g' \
            -e 's: \([])},;]\):\1:g' \
            -e 's: $::' \
            $f \
      | awk '
      /^.#/   { if (defined[$1] == $0) {
                  print $1
                  next
                }
                defined[$1] = $0
              }
              { print }
      '
      
      When the kernel ABI changes, diffing individual *.symtype files, or the
      combined files, against each other will show which symbol changes caused the
      ABI changes. This can save a tremendous amount of time.
      
      Dump the types that make up modversions
      Signed-off-by: NAndreas Gruenbacher <agruen@suse.de>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      15fde675
  17. 21 3月, 2006 1 次提交
  18. 13 3月, 2006 3 次提交
  19. 09 3月, 2006 1 次提交
  20. 02 1月, 2006 1 次提交
  21. 27 12月, 2005 2 次提交
    • S
      kbuild: Create _shipped files for genksyms · c40f5640
      Sam Ravnborg 提交于
      Generate _shipped files so the genksyms change in previous commit is enabled.
      The files are generated with latest versions of the tools:
      
      bison (GNU Bison) 2.0
      flex version 2.5.4
      GNU gperf 3.0.1
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      c40f5640
    • R
      kbuild: Fix genksyms handling of DEFINE_PER_CPU(struct foo_s *, bar); · a89a0a23
      Robin Holt 提交于
      This is a one-line change to parse.y.
      To take advantage of this the scripts/genksyms/*_shipped files needs to
      be rebuild - this is the next patch.
      
      When a .c file contains:
      DEFINE_PER_CPU(struct foo_s *, bar);
      
      the .cpp output looks like:
      __attribute__((__section__(".data.percpu"))) __typeof__(struct foo_s *) per_cpu__bar;
      
      With the existing parse.y, the value inside the paranthesis of
      __typeof__() does not evaluate as a type_specifier and therefore
      per_cpu__bar does not get assigned a type for genksyms which results in
      the EXPORT_PER_CPU_SYMBOL() not generating a CRC value.
      
      I have compared the Modules.symvers with and without this
      patch and for ia64's defconfig, the only change is:
      Before 0x00000000    per_cpu____sn_nodepda   vmlinux
      After  0x9d3f3faa    per_cpu____sn_nodepda   vmlinux
      
      per_cpu____sn_nodepda was the original source of my problems.
      Signed-off-by: NRobin Holt <holt@sgi.com>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      a89a0a23
  22. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4