Enable multiarch whenever possible.

This commit is contained in:
H.J. Lu 2009-12-23 20:22:46 -08:00 committed by Ulrich Drepper
parent 63de5ef70a
commit 6f89d2f30f
3 changed files with 78 additions and 12 deletions

View File

@ -1,3 +1,9 @@
2009-12-17 H.J. Lu <hongjiu.lu@intel.com>
* configure.in: Enable multi-arch by default if the assembler
supports gnu_indirect_function symbol type and the architecture
supports it.
2009-12-23 Ulrich Drepper <drepper@redhat.com>
* include/stdlib.h: Exclude some includes and prototypes if _ISOMAC

49
configure vendored
View File

@ -724,12 +724,12 @@ INSTALL_PROGRAM
sysdeps_add_ons
sysnames
submachine
multi_arch
base_machine
add_on_subdirs
add_ons
libc_cv_nss_crypt
experimental_malloc
multi_arch
all_warnings
force_install
bindnow
@ -3801,18 +3801,13 @@ fi
if test "${enable_multi_arch+set}" = set; then
enableval=$enable_multi_arch; multi_arch=$enableval
else
multi_arch=no
multi_arch=default
fi
if test x"$multi_arch" = xyes; then
cat >>confdefs.h <<\_ACEOF
#define USE_MULTIARCH 1
_ACEOF
if test x"$multi_arch" != xno; then
multi_arch_d=/multiarch
fi
# Check whether --enable-experimental-malloc was given.
if test "${enable_experimental_malloc+set}" = set; then
enableval=$enable_experimental_malloc; experimental_malloc=$enableval
@ -4359,6 +4354,44 @@ for b in $base ''; do
done
done
# If the assembler supports gnu_indirect_function symbol type and the
# architecture supports multi-arch, we enable multi-arch by default.
if test "$multi_arch" = default; then
{ $as_echo "$as_me:$LINENO: checking for assembler gnu_indirect_function symbol type support" >&5
$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; }
if test "${libc_cv_asm_gnu_indirect_function+set}" = set; then
$as_echo_n "(cached) " >&6
else
cat > conftest.s <<EOF
.type foo,%gnu_indirect_function
EOF
if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5;
then
libc_cv_asm_gnu_indirect_function=yes
else
libc_cv_asm_gnu_indirect_function=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_gnu_indirect_function" >&5
$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; }
multi_arch=no
if test "$libc_cv_asm_gnu_indirect_function" = yes; then
case $sysnames_add_ons$sysnames in
*"$multi_arch_d"*)
multi_arch=yes
;;
esac
fi
fi
if test x"$multi_arch" = xyes; then
cat >>confdefs.h <<\_ACEOF
#define USE_MULTIARCH 1
_ACEOF
fi
if test -z "$os_used" && test "$os" != none; then
{ { $as_echo "$as_me:$LINENO: error: Operating system $os is not supported." >&5
$as_echo "$as_me: error: Operating system $os is not supported." >&2;}

View File

@ -272,12 +272,10 @@ AC_ARG_ENABLE([multi-arch],
AC_HELP_STRING([--enable-multi-arch],
[enable single DSO with optimizations for multiple architectures]),
[multi_arch=$enableval],
[multi_arch=no])
if test x"$multi_arch" = xyes; then
AC_DEFINE(USE_MULTIARCH)
[multi_arch=default])
if test x"$multi_arch" != xno; then
multi_arch_d=/multiarch
fi
AC_SUBST(multi_arch)
AC_ARG_ENABLE([experimental-malloc],
AC_HELP_STRING([--enable-experimental-malloc],
@ -722,6 +720,35 @@ for b in $base ''; do
done
done
# If the assembler supports gnu_indirect_function symbol type and the
# architecture supports multi-arch, we enable multi-arch by default.
if test "$multi_arch" = default; then
AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
libc_cv_asm_gnu_indirect_function, [dnl
cat > conftest.s <<EOF
.type foo,%gnu_indirect_function
EOF
if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
then
libc_cv_asm_gnu_indirect_function=yes
else
libc_cv_asm_gnu_indirect_function=no
fi
rm -f conftest*])
multi_arch=no
if test "$libc_cv_asm_gnu_indirect_function" = yes; then
case $sysnames_add_ons$sysnames in
*"$multi_arch_d"*)
multi_arch=yes
;;
esac
fi
fi
if test x"$multi_arch" = xyes; then
AC_DEFINE(USE_MULTIARCH)
fi
AC_SUBST(multi_arch)
if test -z "$os_used" && test "$os" != none; then
AC_MSG_ERROR(Operating system $os is not supported.)
fi