summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-06-07 00:32:22 -0400
committerRich Felker <dalias@aerifal.cx>2012-06-07 00:32:22 -0400
commit498a100d05666024fd0d409a27709a03e7e58dd3 (patch)
tree9692805101674cf4a35e72b425870381750e2027
parentf1fd7577ba7eb2a202833e89c63b8e01dedfca05 (diff)
downloadmusl-498a100d05666024fd0d409a27709a03e7e58dd3.tar.gz
musl-498a100d05666024fd0d409a27709a03e7e58dd3.tar.bz2
musl-498a100d05666024fd0d409a27709a03e7e58dd3.tar.xz
musl-498a100d05666024fd0d409a27709a03e7e58dd3.zip
check for ld support of -Bsymbolic-functions; disable shared if not avail
this issue affects the last gpl2 version of binutils, which some people are still using out of aversion to gpl3. musl requires -Bsymbolic-functions because it's the only way to make a libc.so that's able to operate prior to dynamic linking but that still behaves correctly with respect to global vars that may be moved to the main program via copy relocations.
-rwxr-xr-xconfigure7
1 files changed, 7 insertions, 0 deletions
diff --git a/configure b/configure
index f765ca72..7e5a8dfb 100755
--- a/configure
+++ b/configure
@@ -267,6 +267,13 @@ fi
tryflag CFLAGS_AUTO -fno-stack-protector
tryldflag LDFLAGS_AUTO -Wl,--hash-style=sysv
+# Disable dynamic linking if ld is broken and can't do -Bsymbolic-functions
+LDFLAGS_DUMMY=
+tryldflag LDFLAGS_DUMMY -Wl,-Bsymbolic-functions || {
+printf "warning: disabling dynamic linking support\n"
+shared=no
+}
+
printf "creating config.mak... "