Linux MIPS Architecture development
 help / color / mirror / Atom feed
* problems with dlsym() on MIPS, looking for advice
@ 2008-05-26 17:51 Chris Friesen
       [not found] ` <20080129132739.5D6B.YORIKO@sm.sony.co.jp>
  0 siblings, 1 reply; 3+ messages in thread
From: Chris Friesen @ 2008-05-26 17:51 UTC (permalink / raw)
  To: linux-mips

I think this is a userspace/toolchain issue, so if that's offtopic for 
this list please let me know of a better resource.

We're using glibc 2.3.6 and gcc 3.4.4.  We've got some library code 
(that gets preloaded for debugging) something like this:

ee_sigaction_fptr = dlsym(RTLD_DEFAULT, "sigaction"); 
   if (ee_sigaction_fptr == sigaction) 
      	ee_sigaction_fptr = dlsym(RTLD_NEXT, "sigaction");

We have declared our own sigaction procedure which is extern in this 
code.  On non-MIPS arches (powerpc, x86, x86_64) the RTLD_DEFAULT call 
returns the address of our external procedure and the RTLD_NEXT call 
returns the real sigaction address in its appropriate library.

On MIPS, the DEFAULT returns the address of this libraries undefined 
symbol for the extern and NEXT returns our external procedure.  Putting 
in a second RTLD_NEXT call returned the real sigaction address.

This worked for most procedures we are looking for. However, during 
booting, we have an app that uses a specific library which has an extern 
for sigaction as well and now in the preloaded code we need a fourth 
call to dlsym to skip that one.

We tried recoding the above debug code to do one DEFAULT call and a loop 
of NEXT calls until it returns NULL.  It didn't.  It just kept returning 
the last pointer all the time. 


Has anyone seen anything like this?  Is there a known issue with dlsym() 
and certain toolchains?  (Maybe something like 
"http://busybox.net/lists/uclibc/2007-January/017150.html"?)


Any help you can provide would be appreciated.

Thanks,

Chris

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-07-03  5:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-26 17:51 problems with dlsym() on MIPS, looking for advice Chris Friesen
     [not found] ` <20080129132739.5D6B.YORIKO@sm.sony.co.jp>
2008-07-02 12:47   ` do-lookup.h regarding to mips/dlsym and libstdc++ Daniel Jacobowitz
2008-07-03  5:05     ` Yoriko Komatsuzaki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox