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)