Skip to content
  1. Mar 17, 2011
  2. Feb 02, 2010
  3. Sep 23, 2009
  4. Jan 14, 2009
  5. Dec 19, 2008
    • Jan Beulich's avatar
      kbuild: strip generated symbols from *.ko · ad7a953c
      Jan Beulich authored
      
      
      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: default avatarJan Beulich <jbeulich@novell.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      ad7a953c
  6. Dec 03, 2008
    • Andreas Gruenbacher's avatar
      genksyms: allow to ignore symbol checksum changes · 5dae9a55
      Andreas Gruenbacher authored
      
      
      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: default avatarAndreas Gruenbacher <agruen@suse.de>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      5dae9a55
    • Andreas Gruenbacher's avatar
      genksyms: track symbol checksum changes · 64e6c1e1
      Andreas Gruenbacher authored
      
      
      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: default avatarAndreas Gruenbacher <agruen@suse.de>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      64e6c1e1
  7. Jul 31, 2008
  8. Jul 24, 2008
  9. Jan 28, 2008
  10. May 07, 2007
  11. Jun 24, 2006
    • Andreas Gruenbacher's avatar
      kbuild: support for %.symtypes files · 15fde675
      Andreas Gruenbacher authored
      
      
      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: default avatarAndreas Gruenbacher <agruen@suse.de>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      15fde675
  12. Mar 12, 2006
  13. Mar 08, 2006
  14. Apr 16, 2005
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      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!
Loading