From: Andi Kleen <a...@linux.intel.com>

For some reason I managed to trick gcc into create CRC symbols that
are not absolute anymore, but weak.

Make modpost handle this case.

Andrew, this should fix the bizarre warning. Seems like a toolchain
bug to me.

Signed-off-by: Andi Kleen <a...@linux.intel.com>
---
 scripts/mod/modpost.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 6216434..b3dd735 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -599,18 +599,17 @@ static void handle_modversions(struct module *mod, struct 
elf_info *info,
        else
                export = export_from_sec(info, get_secindex(info, sym));
 
+       /* CRC'd symbol */
+       if (strncmp(symname, CRC_PFX, strlen(CRC_PFX)) == 0) {
+               crc = (unsigned int) sym->st_value;
+               sym_update_crc(symname + strlen(CRC_PFX), mod, crc,
+                               export);
+       }
+
        switch (sym->st_shndx) {
        case SHN_COMMON:
                warn("\"%s\" [%s] is COMMON symbol\n", symname, mod->name);
                break;
-       case SHN_ABS:
-               /* CRC'd symbol */
-               if (strncmp(symname, CRC_PFX, strlen(CRC_PFX)) == 0) {
-                       crc = (unsigned int) sym->st_value;
-                       sym_update_crc(symname + strlen(CRC_PFX), mod, crc,
-                                       export);
-               }
-               break;
        case SHN_UNDEF:
                /* undefined symbol */
                if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL &&
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to