this probably is one of the most subtle bugs i've seen in a while.
Uncovered feb 14, 2004.
symptoms:
NEMO's shared objects would not load in loadobj() after which a function pointer
would be obtained.
It only revealed itself on a mandrake 8.2 system, not on redhat9.
Intel as well as gnu compiler both showed the problem.
The problem only showed when compiling with -O1 or more (-O0 was clean, as well as
a pure -g compilation).
turns out, the object needed to be compiled with -fpic, in order for -shared to
make it a good .so file. very subtle.
the fix: make configure figure out what the flag should be. -fpic for linux.
Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems
(a book review on slashdot, Feb 24, 2004)