summaryrefslogtreecommitdiff
path: root/configure
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 /configure
parentf1fd7577ba7eb2a202833e89c63b8e01dedfca05 (diff)
downloadmusl-498a100d05666024fd0d409a27709a03e7e58dd3.tar.gz
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.
Diffstat (limited to 'configure')
-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... "