From: Andy Dougherty Date: Tue, 15 Jul 2003 10:52:58 +0000 (-0400) Subject: Re: [perl #22941] Can't build perl with -Duseshrplib if /usr/bin/gcc is a perl script X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=830717a75f047ef8412eae24a226ec989038565f;p=p5sagit%2Fp5-mst-13.2.git Re: [perl #22941] Can't build perl with -Duseshrplib if /usr/bin/gcc is a perl script Date: Tue, 15 Jul 2003 10:52:58 -0400 (EDT) Message-ID: plus a clarification to INSTALL : Subject: [PATCH] Re: [perl #22941] Can't build perl with -Duseshrplib if /usr/bin/gcc is a perl script From: Andy Dougherty Date: Wed, 16 Jul 2003 11:01:24 -0400 (EDT) Message-ID: p4raw-id: //depot/perl@20172 --- diff --git a/INSTALL b/INSTALL index 359c68a..1f2ac62 100644 --- a/INSTALL +++ b/INSTALL @@ -972,10 +972,14 @@ 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. -The only reliable answer is that you should specify a different -directory for the architecture-dependent library for your -DDEBUGGING -version of perl. You can do this by changing all the *archlib* -variables in config.sh to point to your new architecture-dependent library. +In other words, it is generally not a good idea to try to build a perl +with a shared library if $archlib/CORE/$libperl already exists from a +previous build. + +A good workaround is to specify a different directory for the +architecture-dependent library for your -DDEBUGGING version of perl. +You can do this by changing all the *archlib* variables in config.sh to +point to your new architecture-dependent library. =head2 Malloc Issues diff --git a/Makefile.SH b/Makefile.SH index cf2f38e..ae6072e 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -104,6 +104,13 @@ true) case "$osname" in linux) + # If there is a pre-existing $libperl from a previous + # installation, Linux needs to use LD_PRELOAD to + # override the LD_LIBRARY_PATH setting. See the + # INSTALL file, under "Building a shared perl library". + # If there is no pre-existing $libperl, we don't need + # to do anything further. + if test -f $archlib/CORE/$libperl; then rm -f preload cat <<'EOT' > preload #! /bin/sh @@ -114,7 +121,8 @@ exec "$@" EOT chmod 755 preload ldlibpth="$ldlibpth `pwd`/preload `pwd`/$libperl" - ;; + fi + ;; os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth" ;; esac