mirror of
https://github.com/fluencelabs/musl
synced 2025-04-25 23:32:15 +00:00
add configure check for gnu linker hash style setting
some broken distro-provided toolchains have modified gcc to produce only "gnu hash" dynamic hash table by default. as this is unsupported by musl, that results in a non-working libc.so. we detect and switch this on in configure rather than hard-coding it in the Makefile because it's not supported by old binutils versions, but that might not even be relevant since old binutils versions already fail from -Bsymbolic-functions being missing. at some point I may review whether this should just go in the Makefile...
This commit is contained in:
parent
6e0ad2277a
commit
08f70a30c0
21
configure
vendored
21
configure
vendored
@ -67,10 +67,27 @@ return 1
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tryldflag () {
|
||||||
|
printf "checking whether linker accepts %s... " "$2"
|
||||||
|
echo "int main() { return 0; }" > "$tmpc"
|
||||||
|
if "$CC" "$2" -o /dev/null "$tmpc" 2>/dev/null ; then
|
||||||
|
printf "yes\n"
|
||||||
|
eval "$1=\"\${$1} \$2\""
|
||||||
|
eval "$1=\${$1# }"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
printf "no\n"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Beginning of actual script
|
# Beginning of actual script
|
||||||
|
|
||||||
|
CFLAGS_C99FSE=
|
||||||
|
CFLAGS_AUTO=
|
||||||
|
LDFLAGS_AUTO=
|
||||||
prefix=
|
prefix=
|
||||||
exec_prefix=
|
exec_prefix=
|
||||||
bindir=
|
bindir=
|
||||||
@ -246,6 +263,8 @@ tryflag CFLAGS_AUTO -Wno-unused-but-set-variable
|
|||||||
tryflag CFLAGS_AUTO -Wno-unknown-pragmas
|
tryflag CFLAGS_AUTO -Wno-unknown-pragmas
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
tryldflag LDFLAGS_AUTO -Wl,--hash-style=sysv
|
||||||
|
|
||||||
|
|
||||||
printf "creating config.mak... "
|
printf "creating config.mak... "
|
||||||
|
|
||||||
@ -266,7 +285,7 @@ CC = $CC
|
|||||||
CFLAGS= $CFLAGS_AUTO $CFLAGS
|
CFLAGS= $CFLAGS_AUTO $CFLAGS
|
||||||
CFLAGS_C99FSE = $CFLAGS_C99FSE
|
CFLAGS_C99FSE = $CFLAGS_C99FSE
|
||||||
CPPFLAGS = $CPPFLAGS
|
CPPFLAGS = $CPPFLAGS
|
||||||
LDFLAGS = $LDFLAGS
|
LDFLAGS = $LDFLAGS_AUTO $LDFLAGS
|
||||||
EOF
|
EOF
|
||||||
test "x$static" = xno && echo "STATIC_LIBS ="
|
test "x$static" = xno && echo "STATIC_LIBS ="
|
||||||
test "x$shared" = xno && echo "SHARED_LIBS ="
|
test "x$shared" = xno && echo "SHARED_LIBS ="
|
||||||
|
Loading…
x
Reference in New Issue
Block a user