linuxppc, possible bug in exported ksyms

brandon (casey@eecs.tulane.edu)
Wed, 10 Nov 1999 20:14:37 -0600 (CST)


i compiled 2.2.13 with the dmasound sound driver.
when i try to insmod the module i get:
unresolved symbol machine_is_compatible

this function is in the System.map:
c0118534 T machine_is_compatible
,but it is not in /proc/ksyms so it is not
an exported symbol right?

it is defined in linux/arch/ppc/kernel/prom.c
it basically finds the root device and calls
device_is_compatible

device_is_compatible is defined in System.map:
c00d9780 ? __kstrtab_device_is_compatible
c00ddbe0 ? __ksymtab_device_is_compatible
c01180f0 T device_is_compatible

so i looked and i see that device_is_compatible is
made exported in linux/arch/ppc/kernel/ppc_ksyms.c:
EXPORT_SYMBOL(device_is_compatible);

ppc_ksyms.c includes prom.c

is dmasound failing because the function machine_is_compatible
is not exported?

can i fix this by adding
EXPORT_SYMBOL(machine_is_compatible);
to ppc_ksyms.c ?

what part in any of this do the files in
linux/include/linux/modules play?
there is a ppc_ksyms.ver and ppc_ksyms.stamp
ppc_ksyms.ver has a couple of statements that
have to do with device_is_compatible

for your reference:
sound worked when sound was compiled into the kernel(2.2.6 though).
the correct System.map was loaded, verified with dmesg and
/var/log/messages.

unrelated but...
soundcore.o was already loaded
alias sound dmasound added to /etc/conf.modules

can you reply directly to me too, i get the kernel-digest.
thanks,
-brandon

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