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