summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure32
-rw-r--r--Porting/Glossary5
-rw-r--r--uconfig.h2
-rw-r--r--uconfig.sh1
4 files changed, 38 insertions, 2 deletions
diff --git a/Configure b/Configure
index f87e6fdc09..fa8fbb0169 100755
--- a/Configure
+++ b/Configure
@@ -28,7 +28,7 @@
# See Porting/pumpkin.pod for more information on metaconfig.
#
-# Generated on Thu Feb 16 16:57:30 CET 2012 [metaconfig 3.5 PL0]
+# Generated on Sat Mar 31 16:09:53 CEST 2012 [metaconfig 3.5 PL0]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
@@ -843,6 +843,7 @@ cccdlflags=''
ccdlflags=''
dlsrc=''
ld=''
+ld_can_script=''
lddlflags=''
usedl=''
doublesize=''
@@ -8085,6 +8086,34 @@ EOM
;;
esac
+ld_can_script="$undef"
+case "$bin_ELF$usedl" in
+$define$define)
+ # Abuse try.h and a.out names for neat cleanup
+ $cat >try.c <<EOM
+void foo() {}
+void bar() {}
+EOM
+ $cat >try.h <<EOM
+LIBTEST_42 {
+ global:
+ foo;
+ local: *;
+ };
+EOM
+ if $cc $cccdlflags $ccdlflags $ccflags \
+ $ldflags $lddlflags -o a.out try.c \
+ -Wl,--version-script=try.h >/dev/null 2>&1 \
+ && $test -s a.out ; then
+ echo "ld supports scripting" >&4
+ ld_can_script="$define"
+ else
+ echo "ld does not support scripting" >&4
+ fi
+ $rm_try
+ ;;
+esac
+
: Do we want a shared libperl?
also=''
case "$usedl" in
@@ -23471,6 +23500,7 @@ ivtype='$ivtype'
known_extensions='$known_extensions'
ksh='$ksh'
ld='$ld'
+ld_can_script='$ld_can_script'
lddlflags='$lddlflags'
ldflags='$ldflags'
ldflags_uselargefiles='$ldflags_uselargefiles'
diff --git a/Porting/Glossary b/Porting/Glossary
index e42d7509b4..23ffbfe235 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -3619,6 +3619,11 @@ ld (dlsrc.U):
On ELF systems, it should be $cc. Mostly, we'll try to respect
the hint file setting.
+ld_can_script (dlsrc.U):
+ This variable shows if the loader accepts scripts in the form of
+ -Wl,--version-script=ld.script. This is currently only supported
+ for GNU ld on ELF in dynamic loading builds.
+
lddlflags (dlsrc.U):
This variable contains any special flags that might need to be
passed to $ld to create a shared library suitable for dynamic
diff --git a/uconfig.h b/uconfig.h
index d17bd9a404..fc958ed17d 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -4735,5 +4735,5 @@
/* Generated from:
* d9b6a68b192c72c0695b560fae6e4916b381f55df5fdf7911b0ef434840f092e config_h.SH
- * 3dad514f97a86deca0eebb6544f7785077651da24e7c6231ef7a22963ff4fd5d uconfig.sh
+ * 57694ed3f0d8607c648dcda8db17e8301e376b16cd7b7bed04772c713c1d5818 uconfig.sh
* ex: set ro: */
diff --git a/uconfig.sh b/uconfig.sh
index 076fde4325..11ad8947a5 100644
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -638,6 +638,7 @@ intsize='4'
ivdformat='"ld"'
ivsize='4'
ivtype='long'
+ld_can_script='define'
lib_ext='.a'
localtime_r_proto='0'
longdblsize=8