summaryrefslogtreecommitdiff
path: root/scripts/crosstool-NG.sh.in
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-09-04 02:55:58 (GMT)
committerGitHub <noreply@github.com>2017-09-04 02:55:58 (GMT)
commitf994d1c7d7cd62a474a09cadc89ddd15da427fef (patch)
treeab4683e03ce5cb5e0eeffb8137327170e637ecdd /scripts/crosstool-NG.sh.in
parent95de709fe3f7e58af210c2727a7b28608936068e (diff)
parent602304b23077b8cd58b99a836e8d9ffbedecd52c (diff)
Merge pull request #823 from stilor/sh-experiment-multilib
Better SuperH multilib support (different endian, glibc/uClibc for no-FPU, etc)
Diffstat (limited to 'scripts/crosstool-NG.sh.in')
-rw-r--r--scripts/crosstool-NG.sh.in13
1 files changed, 13 insertions, 0 deletions
diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in
index 9c09b5e..cc216f9 100644
--- a/scripts/crosstool-NG.sh.in
+++ b/scripts/crosstool-NG.sh.in
@@ -164,9 +164,22 @@ CT_PREFIX_DIR="$( ${sed} -r -e 's:/+:/:g; s:/*$::;' <<<"${CT_PREFIX_DIR}" )"
# Put user-supplied flags at the end, so that they take precedence.
CT_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_TARGET_CFLAGS}"
CT_TARGET_LDFLAGS="${CT_ARCH_TARGET_LDFLAGS} ${CT_TARGET_LDFLAGS}"
+
+# FIXME move to gcc.sh
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_CORE_EXTRA_CONFIG} "${CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY[@]}" )
CT_CC_GCC_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_EXTRA_CONFIG} "${CT_CC_GCC_EXTRA_CONFIG_ARRAY[@]}" )
+# Starting with 1.0.20, applications using uClibc-ng do not link with
+# the default libgcc_c_spec used by GCC if only static libc.a exists - unless
+# -static is thrown in. The difference is that with -static, gcc passes
+# "--start-group -lgcc -lc --end-group" and without -static, it passes
+# "-lgcc -lc -lgcc" instead. The latter leaves a symbol from 2nd libgcc
+# (dl_iterate_phdr) unresolved because -lc is already done at this point.
+# Force static link on the target.
+if [ "${CT_SHARED_LIBS}" != "y" ]; then
+ CT_TARGET_LDFLAGS+=" -static"
+fi
+
# Compute the package version string
if [ "${CT_SHOW_CT_VERSION}" = "y" ]; then
CT_PKGVERSION="crosstool-NG ${CT_VERSION}${CT_TOOLCHAIN_PKGVERSION:+ - ${CT_TOOLCHAIN_PKGVERSION}}"