projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move MREMAP_MAYMOVE and MREMAP_FIXED out of bits
[musl]
/
configure
diff --git
a/configure
b/configure
index
3c01bf4
..
e80fdfb
100755
(executable)
--- a/
configure
+++ b/
configure
@@
-123,8
+123,9
@@
target=
optimize=auto
debug=no
warnings=no
optimize=auto
debug=no
warnings=no
-shared=
yes
+shared=
auto
static=yes
static=yes
+wrapper=auto
for arg ; do
case "$arg" in
for arg ; do
case "$arg" in
@@
-189,24
+190,43
@@
trycc ${CROSS_COMPILE}cc
printf "%s\n" "$CC"
test -n "$CC" || { echo "$0: cannot find a C compiler" ; exit 1 ; }
printf "%s\n" "$CC"
test -n "$CC" || { echo "$0: cannot find a C compiler" ; exit 1 ; }
+printf "checking whether C compiler works... "
+echo "typedef int x;" > "$tmpc"
+if output=$($CC $CPPFLAGS $CFLAGS -c -o /dev/null "$tmpc" 2>&1) ; then
+printf "yes\n"
+else
+printf "no; compiler output follows:\n%s\n" "$output"
+exit 1
+fi
+
#
#
-# Only build musl-gcc wrapper if toolchain does not already target musl
+# Need to know if the compiler is gcc to decide whether to build the
+# musl-gcc wrapper, and for critical bug detection in some gcc versions.
#
#
-if test -z "$wrapper" ; then
printf "checking whether compiler is gcc... "
printf "checking whether compiler is gcc... "
-if fnmatch '*gcc\ version*' "$($CC -v 2>&1)" ; then
-echo yes
+if fnmatch '*gcc\ version*' "$(LC_ALL=C $CC -v 2>&1)" ; then
+cc_is_gcc=yes
+else
+cc_is_gcc=no
+fi
+echo "$cc_is_gcc"
+
+#
+# Only build musl-gcc wrapper if toolchain does not already target musl
+#
+if test "$wrapper" = auto ; then
printf "checking whether to build musl-gcc wrapper... "
printf "checking whether to build musl-gcc wrapper... "
+if test "$cc_is_gcc" = yes ; then
wrapper=yes
while read line ; do
case "$line" in */ld-musl-*) wrapper=no ;; esac
done <<EOF
$($CC -dumpspecs)
EOF
wrapper=yes
while read line ; do
case "$line" in */ld-musl-*) wrapper=no ;; esac
done <<EOF
$($CC -dumpspecs)
EOF
-echo $wrapper
else
else
-
echo
no
+
wrapper=
no
fi
fi
+echo "$wrapper"
fi
fi
@@
-230,6
+250,7
@@
x86_64-x32*|x32*|x86_64*x32) ARCH=x32 ;;
x86_64*) ARCH=x86_64 ;;
mips*) ARCH=mips ;;
microblaze*) ARCH=microblaze ;;
x86_64*) ARCH=x86_64 ;;
mips*) ARCH=mips ;;
microblaze*) ARCH=microblaze ;;
+or1k*) ARCH=or1k ;;
powerpc*) ARCH=powerpc ;;
sh[1-9bel-]*|sh|superh*) ARCH=sh ;;
unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;;
powerpc*) ARCH=powerpc ;;
sh[1-9bel-]*|sh|superh*) ARCH=sh ;;
unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;;
@@
-278,12
+299,9
@@
fi
tryflag CFLAGS_MEMOPS -fno-tree-loop-distribute-patterns
#
tryflag CFLAGS_MEMOPS -fno-tree-loop-distribute-patterns
#
-#
If debugging is explicitly enabled, don't auto-enable optimizations
+#
Enable debugging if requessted.
#
#
-if test "$debug" = yes ; then
-CFLAGS_AUTO=-g
-test "$optimize" = auto && optimize=no
-fi
+test "$debug" = yes && CFLAGS_AUTO=-g
#
# Possibly add a -O option to CFLAGS and select modules to optimize with
#
# Possibly add a -O option to CFLAGS and select modules to optimize with
@@
-392,12
+410,15
@@
fi
tryflag CFLAGS_AUTO -fno-stack-protector
tryldflag LDFLAGS_AUTO -Wl,--hash-style=both
tryflag CFLAGS_AUTO -fno-stack-protector
tryldflag LDFLAGS_AUTO -Wl,--hash-style=both
+test "$shared" = "no" || {
# Disable dynamic linking if ld is broken and can't do -Bsymbolic-functions
LDFLAGS_DUMMY=
tryldflag LDFLAGS_DUMMY -Wl,-Bsymbolic-functions || {
# Disable dynamic linking if ld is broken and can't do -Bsymbolic-functions
LDFLAGS_DUMMY=
tryldflag LDFLAGS_DUMMY -Wl,-Bsymbolic-functions || {
+test "$shared" = "yes" && fail "$0: error: linker cannot build shared library"
printf "warning: disabling dynamic linking support\n"
shared=no
}
printf "warning: disabling dynamic linking support\n"
shared=no
}
+}
# Find compiler runtime library
test -z "$LIBCC" && tryldflag LIBCC -lgcc && tryldflag LIBCC -lgcc_eh
# Find compiler runtime library
test -z "$LIBCC" && tryldflag LIBCC -lgcc && tryldflag LIBCC -lgcc_eh
@@
-410,6
+431,10
@@
printf "using compiler runtime libraries: %s\n" "$LIBCC"
SUBARCH=
t="$CFLAGS_C99FSE $CPPFLAGS $CFLAGS_AUTO $CFLAGS"
SUBARCH=
t="$CFLAGS_C99FSE $CPPFLAGS $CFLAGS_AUTO $CFLAGS"
+if test "$ARCH" = "x86_64" ; then
+trycppif __ILP32__ "$t" && ARCH=x32
+fi
+
if test "$ARCH" = "arm" ; then
trycppif __ARMEB__ "$t" && SUBARCH=${SUBARCH}eb
trycppif __ARM_PCS_VFP "$t" && SUBARCH=${SUBARCH}hf
if test "$ARCH" = "arm" ; then
trycppif __ARMEB__ "$t" && SUBARCH=${SUBARCH}eb
trycppif __ARM_PCS_VFP "$t" && SUBARCH=${SUBARCH}hf
@@
-425,7
+450,7
@@
test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \
if test "$ARCH" = "sh" ; then
trycppif __BIG_ENDIAN__ "$t" && SUBARCH=${SUBARCH}eb
if test "$ARCH" = "sh" ; then
trycppif __BIG_ENDIAN__ "$t" && SUBARCH=${SUBARCH}eb
-if trycppif
__SH_FPU_ANY__
"$t" ; then
+if trycppif
"__SH_FPU_ANY__ || __SH4__"
"$t" ; then
# Some sh configurations are broken and replace double with float
# rather than using softfloat when the fpu is present but only
# supports single precision. Reject them.
# Some sh configurations are broken and replace double with float
# rather than using softfloat when the fpu is present but only
# supports single precision. Reject them.
@@
-493,7
+518,7
@@
libdir = $libdir
includedir = $includedir
syslibdir = $syslibdir
CC = $CC
includedir = $includedir
syslibdir = $syslibdir
CC = $CC
-CFLAGS= $CFLAGS_AUTO $CFLAGS
+CFLAGS
= $CFLAGS_AUTO $CFLAGS
CFLAGS_C99FSE = $CFLAGS_C99FSE
CFLAGS_MEMOPS = $CFLAGS_MEMOPS
CPPFLAGS = $CPPFLAGS
CFLAGS_C99FSE = $CFLAGS_C99FSE
CFLAGS_MEMOPS = $CFLAGS_MEMOPS
CPPFLAGS = $CPPFLAGS