• Linus Torvalds's avatar
    Revert "default exported asm symbols to zero" · f27c2f69
    Linus Torvalds authored
    This reverts commit 8ab2ae65.
    
    I loved that commit because of how it explained what the problem with
    newer versions of binutils were, but the actual patch itself turns out
    to not work very well.
    
    It has two problems:
    
     - a zero CRC value isn't actually right.  It happens to work for the
       case where both sides of the equation fail at giving the symbol a
       crc, but there are cases where the users of the exported symbol get
       the right crc (due to seeing the C declarations), but the actual
       exporting itself does not (due to the whole weak asm symbol issue).
    
       So then the module load fails after all - we did have a crc for the
       symbol, but we couldn't match it with the loaded module.
    
     - it seems that the alpha assembler has special semantics for the
       '.set' directive, and on alpha it doesn't actually set the value of
       the specified symbol at all, it is instead used to set various
       assembly modes (eg ".set noat" and ".set noreorder").
    
       So using ".set" to set the symbol value would just cause build
       failures on alpha.
    
    I'm sure we'll find some other workaround for these issues (hopefully
    that involves getting rid of modversions entirely some day, but people
    are also talking about just using smarter tools).  But for now we'll
    just fall back on commit faaae2a5 ("Re-enable CONFIG_MODVERSIONS in
    a slightly weaker form") that just let's a missing crc through.
    Reported-by: default avatarJan Stancek <jstancek@redhat.com>
    Reported-by: default avatarPhilip Müller <philm@manjaro.org>
    Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f27c2f69
export.h 2.17 KB