On Thu, Jun 18, 2009 at 10:57:45AM -0700, Steve Gonczi wrote:
> I managed to get the ztest debug compile, using the technique written up in 
> this thread. 
> 
> One thing is still not working:  Trying to apply the same methodology to an 
> userland 
> command (e.g. fashioning a debug-able zpool command) does not work.
> 
> No matter what I do, my freshly recompiled zpool command insists on loading 
> its 
> libraries from the system locations ( /lib and /usr/lib)  and not my 
> workspace 
> location (where the debug libraries are). 
> 
> I have a LD_LIBRARY_PATH set to where the debug lib's are ( actually 2 
> locations 
> separated by ":" and terminated with a "\;".  Using the same settings I use 
> for ztest, 
> works like a charm there.

What does:
        ldd /path/to/zpool
output?

You should generally use:

        LD_LIBRARY_PATH_32=/path1:/path2

for 32-bit libraries and binaries, and

        LD_LIBRARY_PATH_64=/path1/64:/path2/64

(where 64 could also be "amd64" or "sparcv9", depending upon your ISA)

There should be no ';'s in LD_LIBRARY_PATH.

> If you have managed to debug any of the usermode commands, please share 
> your experience.
> 
> I continue looking at this, my current theory is maybe the library    
> search location is made fixed during the build.                       

Unless:

        elfdump -d /path/to/zpool

contains a "RUNPATH" or "RPATH" line, the search location is not fixed.  The
default build environment does not set a runpath.

Is your zpool binary setuid?  That will turn off LD_LIBRARY_PATH* searching.

Cheers,
- jonathan

> 
> Steve
> -- 
> This message posted from opensolaris.org
> _______________________________________________
> zfs-code mailing list
> zfs-code at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/zfs-code

Reply via email to