From 274e6d871acc08da2eb7a30bb6c4604885475465 Mon Sep 17 00:00:00 2001 From: joseph Date: Mon, 6 Sep 2010 15:29:36 +0000 Subject: Merge changes between r11304 and r11460 from /fsf/trunk. git-svn-id: svn://svn.eglibc.org/trunk@11461 7b3dc134-2b1b-0410-93df-9e9f96275f8d --- libc/configure.in | 271 +++++++++++++++++++----------------------------------- 1 file changed, 93 insertions(+), 178 deletions(-) (limited to 'libc/configure.in') diff --git a/libc/configure.in b/libc/configure.in index de0cee73d..63f9bde17 100644 --- a/libc/configure.in +++ b/libc/configure.in @@ -278,9 +278,6 @@ AC_ARG_ENABLE([multi-arch], [enable single DSO with optimizations for multiple architectures]), [multi_arch=$enableval], [multi_arch=default]) -if test x"$multi_arch" != xno; then - multi_arch_d=/multiarch -fi AC_ARG_ENABLE([experimental-malloc], AC_HELP_STRING([--enable-experimental-malloc], @@ -608,6 +605,90 @@ if test "$base_machine" = "i386"; then AC_DEFINE(USE_REGPARMS) fi +# For the multi-arch option we need support in the assembler. +AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support], + libc_cv_asm_gnu_indirect_function, [dnl +cat > conftest.s <&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*]) + +AC_MSG_CHECKING(whether .text pseudo-op must be used) +AC_CACHE_VAL(libc_cv_dot_text, [dnl +cat > conftest.s <&AS_MESSAGE_LOG_FD); then + libc_cv_dot_text=.text +fi +rm -f conftest*]) +if test -z "$libc_cv_dot_text"; then + AC_MSG_RESULT(no) +else + AC_MSG_RESULT(yes) +fi + +AC_CACHE_CHECK(for assembler global-symbol directive, + libc_cv_asm_global_directive, [dnl +libc_cv_asm_global_directive=UNKNOWN +for ac_globl in .globl .global .EXPORT; do + cat > conftest.s <&AS_MESSAGE_LOG_FD); then + libc_cv_asm_global_directive=${ac_globl} + fi + rm -f conftest* + test $libc_cv_asm_global_directive != UNKNOWN && break +done]) +if test $libc_cv_asm_global_directive = UNKNOWN; then + AC_MSG_ERROR(cannot determine asm global directive) +else + AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive}) +fi + +AC_CACHE_CHECK(for assembler .type directive prefix, + libc_cv_asm_type_prefix, [dnl +libc_cv_asm_type_prefix=no +for ac_try_prefix in '@' '%' '#'; do + cat > conftest.s <&AS_MESSAGE_LOG_FD); then + libc_cv_asm_type_prefix=${ac_try_prefix} + fi + rm -f conftest* + test "x$libc_cv_asm_type_prefix" != xno && break +done]) +if test "x$libc_cv_asm_type_prefix" != xno; then + AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix}) +fi + +if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then + if test x"$multi_arch" = xyes; then + AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support]) + else + multi_arch=no + fi +fi +if test x"$multi_arch" != xno; then + multi_arch_d=/multiarch +fi + # Compute the list of sysdep directories for this configuration. # This can take a while to compute. sysdep_dir=$srcdir/sysdeps @@ -727,29 +808,14 @@ 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 <&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*]) +case $sysnames_add_ons$sysnames in +*"$multi_arch_d"*) + ;; +*) 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 + ;; +esac +if test x"$multi_arch" != xno; then AC_DEFINE(USE_MULTIARCH) fi AC_SUBST(multi_arch) @@ -1210,43 +1276,6 @@ if test $libc_cv_need_minus_P = yes; then asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives." fi -AC_MSG_CHECKING(whether .text pseudo-op must be used) -AC_CACHE_VAL(libc_cv_dot_text, [dnl -cat > conftest.s <&AS_MESSAGE_LOG_FD); then - libc_cv_dot_text=.text -fi -rm -f conftest*]) -if test -z "$libc_cv_dot_text"; then - AC_MSG_RESULT(no) -else - AC_MSG_RESULT(yes) -fi - -AC_CACHE_CHECK(for assembler global-symbol directive, - libc_cv_asm_global_directive, [dnl -libc_cv_asm_global_directive=UNKNOWN -for ac_globl in .globl .global .EXPORT; do - cat > conftest.s <&AS_MESSAGE_LOG_FD); then - libc_cv_asm_global_directive=${ac_globl} - fi - rm -f conftest* - test $libc_cv_asm_global_directive != UNKNOWN && break -done]) -if test $libc_cv_asm_global_directive = UNKNOWN; then - AC_MSG_ERROR(cannot determine asm global directive) -else - AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive}) -fi - AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl cat > conftest.s < conftest.s <&AS_MESSAGE_LOG_FD); then - libc_cv_asm_type_prefix=${ac_try_prefix} - fi - rm -f conftest* - test "x$libc_cv_asm_type_prefix" != xno && break -done]) -if test "x$libc_cv_asm_type_prefix" != xno; then - AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix}) -fi - AC_CACHE_CHECK(for assembler gnu_unique_object symbol type, libc_cv_asm_unique_object, [dnl cat > conftest.s < conftest.s <&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*]) - else - libc_cv_asm_gnu_indirect_function=no - fi - if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then - AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support]) - fi -fi - AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive, [cat > conftest.s </dev/null; }; then - uname=$dir - fi - fi -]dnl done if test x$libc_cv_gcc_unwind_find_fde = xyes; then @@ -2260,64 +2233,6 @@ if test x$libc_cv_gcc_unwind_find_fde = xyes; then fi AC_SUBST(libc_cv_gcc_unwind_find_fde) -# If we will use the generic uname implementation, we must figure out what -# it will say by examining the system, and write the results in config-name.h. -if test "$uname" = "sysdeps/generic"; then - -changequote(,)dnl - uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'` -changequote([,])dnl - if test $uname_sysname != $config_os; then - config_release=`echo $config_os | sed s/$uname_sysname//` - fi -dnl -AC_DEFUN(LIBC_KERNEL_ID, [dnl - if test -r /vmunix; then - kernel_id=`strings /vmunix | grep UNIX` - elif test -r /dynix; then - kernel_id=`strings /dynix | grep DYNIX` - else - kernel_id= - fi -])dnl - - AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl -LIBC_KERNEL_ID -changequote(,)dnl - kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'` -changequote([,])dnl - if test x`echo "$config_release" | sed "s/^$kernel_release//"` \ - != x$config_release; then - # The configuration release is a substring of the kernel release. - libc_cv_uname_release=$kernel_release - elif test x$config_release != x; then - libc_cv_uname_release=$config_release - elif test x$kernel_release != x; then - libc_cv_uname_release=$kernel_release - else - libc_cv_uname_release=unknown - fi]) - uname_release="$libc_cv_uname_release" - - AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl -LIBC_KERNEL_ID -changequote(,)dnl - kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'` -changequote([,])dnl - if test -n "$kernel_version"; then - libc_cv_uname_version="$kernel_version" - else - libc_cv_uname_version=unknown - fi]) - uname_version="$libc_cv_uname_version" - -AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl - config_uname=config-name.h:config-name.in -else - # For non-generic uname, we don't need to create config-name.h at all. - config_uname= -fi - dnl This is tested by existing code and it's simpler to avoid changing it. AC_DEFINE(USE_IN_LIBIO) @@ -2401,7 +2316,7 @@ RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h` AC_SUBST(VERSION) AC_SUBST(RELEASE) -AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}]) +AC_CONFIG_FILES([config.make ${config_makefile}]) AC_CONFIG_COMMANDS([default],[[ case $CONFIG_FILES in *config.make*) echo "$config_vars" >> config.make;; -- cgit v1.2.3