[Bug 702] New: EXPORT_SYMBOL and depmod don't work well together with GCC 3.2.2

From: Martin J. Bligh (mbligh@aracnet.com)
Date: Sun May 11 2003 - 14:23:54 EST


http://bugme.osdl.org/show_bug.cgi?id=702

           Summary: EXPORT_SYMBOL and depmod don't work well together with
                    GCC 3.2.2
    Kernel Version: 2.5.67
            Status: NEW
          Severity: low
             Owner: bugme-janitors@lists.osdl.org
         Submitter: gmmapowell@yahoo.com

Distribution: Redhat, modified
Hardware Environment: i386
Software Environment: GCC 3.2.2, modutils 2.4.25
Problem Description:

Disclaimer: as noted above, I'm using gcc 3.2.2, which isn't the top
recommendation, and I think that's the immediate cause of the problem, but I
think nevertheless GCC 3.2.2 has it right, and we're currently relying on a bug.

When I build modules and pass them to depmod, it gives me a bevy of unresolved
symbols which are found in other modules. When I do an nm on them, I get
something like the following:

00000028 ? __ksymtab_NS8390_init
00000008 ? __ksymtab_ei_close
00000010 ? __ksymtab_ei_interrupt
00000000 ? __ksymtab_ei_open
00000018 ? __ksymtab_ei_tx_timeout
00000020 ? __ksymtab_ethdev_init

When depmod comes across these, it does not accept them because of the line

if (objsym->secidx == ksymtab &&
    ELFW(ST_BIND)(objsym->info) == STB_GLOBAL)

and these symbols _aren't_ global because in the header file linux/module.h they
are defined as static.

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



This archive was generated by hypermail 2b29 : Thu May 15 2003 - 22:00:37 EST