• David Brownell's avatar
    [PATCH] remove modpost false warnings on ARM · da68d61f
    David Brownell authored
    This patch stops "modpost" from issuing erroneous modpost warnings on ARM
    builds, which it's been doing since since maybe last summer.  A canonical
    example would be driver method table entries:
    
      WARNING: <path> - Section mismatch: reference to .exit.text:<name>_remove
    	from .data after '$d' (at offset 0x4)
    
    That "$d" symbol is generated by tools conformant with ARM ABI specs; in
    this case it's a symbol **in the middle of** a "<name>_driver" struct.
    
    The erroneous warnings appear to be issued because "modpost" whitelists
    references from "<name>_driver" data into init and exit sections ...  but
    doesn't know should also include those "$d" mapping symbols, which are not
    otherwise associated with "<name>_driver" symbols.
    
    This patch prevents the modpost symbol lookup code from ever returning
    those mapping symbols, so it will return a whitelisted symbol instead.
    Then things work as expected.
    
    Now to revert various code-bloating "fixes" that got merged because of this
    modpost bug....
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Cc: Roman Zippel <zippel@linux-m68k.org>
    Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    da68d61f
modpost.c 38 KB