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

Martin J. Bligh (mbligh@aracnet.com)
Sun, 11 May 2003 12:23:54 -0700


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/