Why would a function not be declared "weak" ?

Mike Harrold mharrold@cas.org
Tue Oct 2 13:38:00 GMT 2001


Hello,

I use dlopen() to access module libraries, and one of them is failing to load
because one of the functions it requires it can't find. The symbol in the
module is:

         U _ZN5specs11RoomSpecial20initialise_room_specERN5world4RoomE

In another, "loaded-at-run-time" library (ie, not a module), the function is
defined as:

00004000 T _ZN5specs11RoomSpecial20initialise_room_specERN5world4RoomE

By using nm, I discovered a number of functions that defined as T rather than
as W. It appears that the function above is the first that was actually being
used, or attempted at being used.

Anyway, the error message I getwhen trying to dlopen() the module is:

E: Oct  2 16:33:39 :: loadfile: Unable to open `/mud/alex/local/gcc-3.0/db/code/class/game/DatabaseModule.so.0.0.1': /mud/alex/local/gcc-3.0/db/code/class/game/DatabaseModule.so.0.0.1: undefined symbol: _ZN5specs11RoomSpecial20initialise_room_specERN5world4RoomE

Any clues as to why this is happening?

Thanks,

/Mike



More information about the Gcc-help mailing list