diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rwxr-xr-x | configure | 304 | ||||
-rw-r--r-- | configure.in | 198 |
3 files changed, 236 insertions, 270 deletions
@@ -1,3 +1,7 @@ +2010-08-21 Mike Frysinger <vapier@gentoo.org> + + * configure.in: Move assembler checks to before sysdep dir checking. + 2010-11-24 Andreas Schwab <schwab@redhat.com> * resolv/nss_dns/dns-host.c (getanswer_r): Don't handle ttl == 0 @@ -3805,9 +3805,6 @@ else multi_arch=default fi -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 @@ -4241,6 +4238,140 @@ _ACEOF fi +# For the multi-arch option we need support in the assembler. +{ $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; } + +{ $as_echo "$as_me:$LINENO: checking whether .text pseudo-op must be used" >&5 +$as_echo_n "checking whether .text pseudo-op must be used... " >&6; } +if test "${libc_cv_dot_text+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat > conftest.s <<EOF +.text +EOF +libc_cv_dot_text= +if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_dot_text=.text +fi +rm -f conftest* +fi + +if test -z "$libc_cv_dot_text"; then + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +fi + +{ $as_echo "$as_me:$LINENO: checking for assembler global-symbol directive" >&5 +$as_echo_n "checking for assembler global-symbol directive... " >&6; } +if test "${libc_cv_asm_global_directive+set}" = set; then + $as_echo_n "(cached) " >&6 +else + libc_cv_asm_global_directive=UNKNOWN +for ac_globl in .globl .global .EXPORT; do + cat > conftest.s <<EOF + ${libc_cv_dot_text} + ${ac_globl} foo +foo: +EOF + if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_asm_global_directive=${ac_globl} + fi + rm -f conftest* + test $libc_cv_asm_global_directive != UNKNOWN && break +done +fi +{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_global_directive" >&5 +$as_echo "$libc_cv_asm_global_directive" >&6; } +if test $libc_cv_asm_global_directive = UNKNOWN; then + { { $as_echo "$as_me:$LINENO: error: cannot determine asm global directive" >&5 +$as_echo "$as_me: error: cannot determine asm global directive" >&2;} + { (exit 1); exit 1; }; } +else + cat >>confdefs.h <<_ACEOF +#define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive} +_ACEOF + +fi + +{ $as_echo "$as_me:$LINENO: checking for assembler .type directive prefix" >&5 +$as_echo_n "checking for assembler .type directive prefix... " >&6; } +if test "${libc_cv_asm_type_prefix+set}" = set; then + $as_echo_n "(cached) " >&6 +else + libc_cv_asm_type_prefix=no +for ac_try_prefix in '@' '%' '#'; do + cat > conftest.s <<EOF + ${libc_cv_dot_text} + ${libc_cv_asm_global_directive} foo + .type foo, ${ac_try_prefix}object + .size foo, 1 +foo: + .byte 1 +EOF + if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_asm_type_prefix=${ac_try_prefix} + fi + rm -f conftest* + test "x$libc_cv_asm_type_prefix" != xno && break +done +fi +{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_type_prefix" >&5 +$as_echo "$libc_cv_asm_type_prefix" >&6; } +if test "x$libc_cv_asm_type_prefix" != xno; then + cat >>confdefs.h <<_ACEOF +#define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix} +_ACEOF + +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 + { { $as_echo "$as_me:$LINENO: error: --enable-multi-arch support requires assembler and linker support" >&5 +$as_echo "$as_me: error: --enable-multi-arch support requires assembler and linker support" >&2;} + { (exit 1); exit 1; }; } + 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 @@ -4357,35 +4488,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 -{ $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; } +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 cat >>confdefs.h <<\_ACEOF #define USE_MULTIARCH 1 _ACEOF @@ -5916,71 +6026,6 @@ if test $libc_cv_need_minus_P = yes; then asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives." fi -{ $as_echo "$as_me:$LINENO: checking whether .text pseudo-op must be used" >&5 -$as_echo_n "checking whether .text pseudo-op must be used... " >&6; } -if test "${libc_cv_dot_text+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat > conftest.s <<EOF -.text -EOF -libc_cv_dot_text= -if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - libc_cv_dot_text=.text -fi -rm -f conftest* -fi - -if test -z "$libc_cv_dot_text"; then - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -fi - -{ $as_echo "$as_me:$LINENO: checking for assembler global-symbol directive" >&5 -$as_echo_n "checking for assembler global-symbol directive... " >&6; } -if test "${libc_cv_asm_global_directive+set}" = set; then - $as_echo_n "(cached) " >&6 -else - libc_cv_asm_global_directive=UNKNOWN -for ac_globl in .globl .global .EXPORT; do - cat > conftest.s <<EOF - ${libc_cv_dot_text} - ${ac_globl} foo -foo: -EOF - if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - libc_cv_asm_global_directive=${ac_globl} - fi - rm -f conftest* - test $libc_cv_asm_global_directive != UNKNOWN && break -done -fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_global_directive" >&5 -$as_echo "$libc_cv_asm_global_directive" >&6; } -if test $libc_cv_asm_global_directive = UNKNOWN; then - { { $as_echo "$as_me:$LINENO: error: cannot determine asm global directive" >&5 -$as_echo "$as_me: error: cannot determine asm global directive" >&2;} - { (exit 1); exit 1; }; } -else - cat >>confdefs.h <<_ACEOF -#define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive} -_ACEOF - -fi - { $as_echo "$as_me:$LINENO: checking for .set assembler directive" >&5 $as_echo_n "checking for .set assembler directive... " >&6; } if test "${libc_cv_asm_set_directive+set}" = set; then @@ -6016,42 +6061,6 @@ _ACEOF fi -{ $as_echo "$as_me:$LINENO: checking for assembler .type directive prefix" >&5 -$as_echo_n "checking for assembler .type directive prefix... " >&6; } -if test "${libc_cv_asm_type_prefix+set}" = set; then - $as_echo_n "(cached) " >&6 -else - libc_cv_asm_type_prefix=no -for ac_try_prefix in '@' '%' '#'; do - cat > conftest.s <<EOF - ${libc_cv_dot_text} - ${libc_cv_asm_global_directive} foo - .type foo, ${ac_try_prefix}object - .size foo, 1 -foo: - .byte 1 -EOF - if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - libc_cv_asm_type_prefix=${ac_try_prefix} - fi - rm -f conftest* - test "x$libc_cv_asm_type_prefix" != xno && break -done -fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_type_prefix" >&5 -$as_echo "$libc_cv_asm_type_prefix" >&6; } -if test "x$libc_cv_asm_type_prefix" != xno; then - cat >>confdefs.h <<_ACEOF -#define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix} -_ACEOF - -fi - { $as_echo "$as_me:$LINENO: checking for assembler gnu_unique_object symbol type" >&5 $as_echo_n "checking for assembler gnu_unique_object symbol type... " >&6; } if test "${libc_cv_asm_unique_object+set}" = set; then @@ -6078,37 +6087,6 @@ _ACEOF fi -# For the multi-arch option we need support in the assembler. -if test "$multi_arch" = yes; then - if test "x$libc_cv_asm_type_prefix" != xno; 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; } - else - libc_cv_asm_gnu_indirect_function=no - fi - if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then - { { $as_echo "$as_me:$LINENO: error: --enable-multi-arch support requires assembler and linker support" >&5 -$as_echo "$as_me: error: --enable-multi-arch support requires assembler and linker support" >&2;} - { (exit 1); exit 1; }; } - fi -fi - { $as_echo "$as_me:$LINENO: checking for .symver assembler directive" >&5 $as_echo_n "checking for .symver assembler directive... " >&6; } if test "${libc_cv_asm_symver_directive+set}" = set; then diff --git a/configure.in b/configure.in index 036a950..098adf4 100644 --- a/configure.in +++ b/configure.in @@ -273,9 +273,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], @@ -603,6 +600,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 <<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*]) + +AC_MSG_CHECKING(whether .text pseudo-op must be used) +AC_CACHE_VAL(libc_cv_dot_text, [dnl +cat > conftest.s <<EOF +.text +EOF +libc_cv_dot_text= +if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&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 <<EOF + ${libc_cv_dot_text} + ${ac_globl} foo +foo: +EOF + if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&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 <<EOF + ${libc_cv_dot_text} + ${libc_cv_asm_global_directive} foo + .type foo, ${ac_try_prefix}object + .size foo, 1 +foo: + .byte 1 +EOF + if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&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 @@ -722,29 +803,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 <<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*]) +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) @@ -1172,43 +1238,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 <<EOF -.text -EOF -libc_cv_dot_text= -if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&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 <<EOF - ${libc_cv_dot_text} - ${ac_globl} foo -foo: -EOF - if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&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 <<EOF ${libc_cv_dot_text} @@ -1234,28 +1263,6 @@ if test $libc_cv_asm_set_directive = yes; then AC_DEFINE(HAVE_ASM_SET_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 <<EOF - ${libc_cv_dot_text} - ${libc_cv_asm_global_directive} foo - .type foo, ${ac_try_prefix}object - .size foo, 1 -foo: - .byte 1 -EOF - if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&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 <<EOF @@ -1273,29 +1280,6 @@ if test $libc_cv_asm_unique_object = yes; then AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT) fi -# For the multi-arch option we need support in the assembler. -if test "$multi_arch" = yes; then - if test "x$libc_cv_asm_type_prefix" != xno; 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*]) - 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 <<EOF ${libc_cv_dot_text} |