On 11/16/06, Philip Gwyn <[EMAIL PROTECTED]> wrote:

On 15-Nov-2006 Roderich Schupp wrote:
> OK, given your experiment with LD_LIBRARY_PATH and LD_PRELOAD:
> what does "readelf -d" (or the "Dynamic section" in the output of "objdump
> -ax"
> if you don't have readelf) say when run on the executable that is
> unpacked into /tmp/par-dw/cache-XXXXX (_not_ on dw.exec itself)?

Dynamic section at offset 0xc014 contains 29 entries:
 Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libperl.so]
...
 0x0000000f (RPATH)                      Library rpath:
[/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE]

perl -V on the FC3 computer gives me :
 ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE'

That seems to be the root of the problem: the special purpose
perl executable that gets extracted into /tmp/par-USER/xxxx has
this RPATH burned into it. But LD_LIBRARY_PATH should have worked...
On the other hand, LD_LIBRARY_PATH is ignored when running
a setuid executable. Is Selinux (or some other non-traditional
security feature) active on the FC3 machine that may have
disabled LD_LIBRARY_PATH?

For an experiment, you could:
(1) remove "-Wl,-rpath,/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE'" from
 ccdlflags (in Config_heavy.pl in your installation)
(2) rebuild PAR with this setting
(3) re-pp your script

Cheers, Roderich

Reply via email to