nowy perl

Jakub Bogusz qboosh w pld-linux.org
Nie, 9 Maj 2004, 15:23:36 CEST


On Sun, May 09, 2004 at 01:50:05PM +0200, Radoslaw Zielinski wrote:
> Jakub Bogusz <qboosh w pld-linux.org> [08-05-2004 19:27]:
> > On Sat, May 08, 2004 at 07:21:16PM +0200, Jakub Bogusz wrote:
> > [...]
> > A tak przy okazji, to łata perl_580-use-LD_PRELOAD-for-libperl.so.patch
> > coś chyba nie działa, bo i tak jest używane LD_LIBRARY_PATH.
[...]
> Zostawiłem na zasadzie ,,nie wiem po co to, nakłada się, nie ruszam''.
> Pewnie został napisany dlatego:
> 
>   $ perldoc INSTALL
>  [...]
>   There is also an potential problem with the shared perl library if you
>   want to have more than one "flavor" of the same version of perl (e.g.
>   with and without -DDEBUGGING).  For example, suppose you build and
>   install a standard Perl 5.8.0 with a shared library.  Then, suppose
>   you try to build Perl 5.8.0 with -DDEBUGGING enabled, but everything
>   else the same, including all the installation directories.  How can
>   you ensure that your newly built perl will link with your newly built
>   libperl.so.8 rather with the installed libperl.so.8?  The answer
>   is that you might not be able to.  The installation directory is
>   encoded in the perl binary with the LD_RUN_PATH environment variable
>   (or equivalent ld command-line option).  On Solaris, you can override
>   that with LD_LIBRARY_PATH; on Linux, you can only override at runtime
>                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   via LD_PRELOAD, specifying the exact filename you wish to be used;
>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   and on Digital Unix, you can override LD_LIBRARY_PATH by setting the
>   _RLD_ROOT environment variable to point to the perl build directory.
> 
> Zgodnie z moimi testami, to nie jest prawdą; LD_LIBRARY_PATH jak
> najbardziej działa.  Do wywalenia, nie?

Trochę mnie to dziwi, bo w podobnych przypadkach LD_LIBRARY_PATH mi nie
chciało działać (i tak wczytywał bibliotekę z /usr/lib) i musiałem
używać LD_PRELOAD.
A w tym przypadku działa (a strace potwierdza), że LD_LIBRARY_PATH
wystarcza, żeby przy wywołaniu ./{mini,}perl była używana nowa
biblioteka, a nie ta z /usr/lib.


Co do samego błędu - namierzyłem, że regresję na ppc spowodowała zmiana
22182 poprawiająca błąd 24914. Ale dlaczego to jest zależne od -O
i architektury?


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl