This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Why would a function not be declared "weak" ?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]