[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

version info in function names



Hi,

Several people I know have been having trouble with drivers/char/drm/mga.o
in the new linux-2.4.0-prerelease kernel.  I've tracked it down to the
fact that many of the object files used to build this module are being
built without versioninfo in the function names (versioninfo is turned
on).  The end result is that the linker includes both the versioninfo form
and the non versioninfo form of the function.  This can be seen by:

# nm mga.o | grep printk
         U printk
         U printk_R1b7d4074

insmod doesn't like trying to resolve this.  :-)

I thought it was just me, but I've seen it on 3 other machines now each
from a fresh build.  It didn't happen in test12.

The culprit is drmlib.a, which is built from:
init.o, memory.o, proc.o, auth.o, context.o, drawable.o, bufs.o, lists.o,
lock.o, ioctl.o, fops.o, vm.o, dma.o, ctxbitmap.o, agpsupport.o

Now every one of these files is supposed to have versioninfo in their
functions, but none of them do.  They don't get built by the Makefile in
drivers/char/drm, but rather they are listed in .depend and get built by
the dependency stuff that happens in the main Makefile.

Unfortunately that's as far as I got.  The dependency stuff started
getting complex, so I thought I'd save myself some time and grief and ask
other people if they knew where I should look to track down this error.
So my questions are:
1) How are function names mangled to include the version info
2) Where is this configured so I can figure out what is going wrong in
drivers/char/drm/ ?

TIA

Regards,
Paul Gearon
pag@PISoftware.com

Catapultam habeo. Nisi pecuniam omnem mihi dabis, ad caput tuum saxum
immane mittam.
(Translation from latin: "I have a catapult. Give me all the money,
or I will fling an enormous rock at your head.")


-
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.surriel.com/kernelnewbies.shtml