add build system support for arch endian & float abi variants

This commit is contained in:
Rich Felker 2013-07-18 20:30:58 -04:00
parent f389c4984a
commit 3e7f186ea1
2 changed files with 33 additions and 1 deletions

View File

@ -49,7 +49,7 @@ TOOL_LIBS = lib/musl-gcc.specs
ALL_LIBS = $(CRT_LIBS) $(STATIC_LIBS) $(SHARED_LIBS) $(EMPTY_LIBS) $(TOOL_LIBS)
ALL_TOOLS = tools/musl-gcc
LDSO_PATHNAME = $(syslibdir)/ld-musl-$(ARCH).so.1
LDSO_PATHNAME = $(syslibdir)/ld-musl-$(ARCH)$(SUBARCH).so.1
-include config.mak

32
configure vendored
View File

@ -54,6 +54,20 @@ stripdir () {
while eval "fnmatch '*/' \"\${$1}\"" ; do eval "$1=\${$1%/}" ; done
}
trycppif () {
printf "checking preprocessor condition %s... " "$1"
echo "#if $1" > "$tmpc"
echo "#error yes" >> "$tmpc"
echo "#endif" >> "$tmpc"
if $CC $2 -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
printf "false\n"
return 1
else
printf "true\n"
return 0
fi
}
tryflag () {
printf "checking whether compiler accepts %s... " "$2"
echo "typedef int x;" > "$tmpc"
@ -310,6 +324,23 @@ test -z "$LIBCC" && try_libcc=`$CC -print-file-name=libpcc.a 2>/dev/null` \
&& tryldflag LIBCC "$try_libcc"
printf "using compiler runtime libraries: %s\n" "$LIBCC"
# Figure out arch variants for archs with variants
SUBARCH=
t="$CFLAGS_C99FSE $CPPFLAGS $CFLAGS_AUTO $CFLAGS"
if test "$ARCH" = "arm" ; then
trycppif __ARMEB__ "$t" && SUBARCH=${SUBARCH}eb
trycppif __SOFTFP__ "$t" || SUBARCH=${SUBARCH}hf
fi
test "$ARCH" = "mips" && trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" \
&& SUBARCH=${SUBARCH}el
test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \
&& SUBARCH=${SUBARCH}el
test "$SUBARCH" \
&& printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH"
printf "creating config.mak... "
@ -320,6 +351,7 @@ cat << EOF
# This version of config.mak was generated by configure
# Any changes made here will be lost if configure is re-run
ARCH = $ARCH
SUBARCH = $SUBARCH
prefix = $prefix
exec_prefix = $exec_prefix
bindir = $bindir