summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--INSTALL12
-rw-r--r--Makefile.SH10
2 files changed, 17 insertions, 5 deletions
diff --git a/INSTALL b/INSTALL
index 359c68af0a..1f2ac62dc6 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 cf2f38e5dc..ae6072e0b7 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