• Sam Ravnborg's avatar
    kbuild: Bogus "has no CRC" in external module builds · 8f36d53f
    Sam Ravnborg authored
    From: Pavel Roskin <proski@gnu.org>
    The recent fixes for the external module build have fixed the major
    breakage, but they left one annoyance unfixed.  If CONFIG_MODVERSIONS is
    disabled, a warning is printed for every exported symbol that is has no
    CRC.  For instance, I see this when compiling the standalone Orinoco
    driver on Linux 2.6.6-rc3:
    
    *** Warning: "__orinoco_down" [/usr/local/src/orinoco/spectrum_cs.ko] has
    no CRC!
    *** Warning: "hermes_struct_init" [/usr/local/src/orinoco/spectrum_cs.ko]
    has no CRC!
    *** Warning: "free_orinocodev" [/usr/local/src/orinoco/spectrum_cs.ko] has
    no CRC!
    [further warnings skipped]
    
    I have found that the "-i" option for modpost is used for external builds,
    whereas the internal modules use "-o".  The "-i" option causes read_dump()
    in modpost.c to be called.  This function sets "modversions" variable
    under some conditions that I don't understand.  The comment before the
    modversions declarations says: "Are we using CONFIG_MODVERSIONS?"
    
    Apparently modpost fails to answer this question.  I think it's better to
    use an explicit option rather than a kludge.
    
    The attached patch adds a new option "-m" that is specified if and only if
    CONFIG_MODVERSIONS is enabled.  The patch has been successfully tested
    both with and without CONFIG_MODVERSIONS.
    Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
    8f36d53f
modpost.c 16 KB