X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fconfigure;h=de9cc72db7f18ff07869d9eac0323ddc6cbf9053;hb=3fa661c420a097dd38a7a231c5df9b0a8b8a28ec;hp=589c8b4299cdeefe541c9a552563ed18b32970a3;hpb=149405350be50c105b4b0e97a57f745006318f76;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/configure b/gcc/configure index 589c8b4299c..de9cc72db7f 100755 --- a/gcc/configure +++ b/gcc/configure @@ -900,6 +900,7 @@ with_pic enable_fast_install enable_libtool_lock with_plugin_ld +enable_comdat enable_gnu_unique_object enable_linker_build_id with_long_double_128 @@ -1602,6 +1603,7 @@ Optional Features: --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --enable-comdat enable COMDAT group support --enable-gnu-unique-object enable the use of the @gnu_unique_object ELF extension on glibc systems --enable-linker-build-id @@ -8424,6 +8426,59 @@ fi done +save_CPPFLAGS="$CPPFLAGS" +save_LIBS="$LIBS" +LIBS="$LIBS $LIBELFLIBS" +for ac_func in elf_getshdrstrndx +do : + ac_fn_c_check_func "$LINENO" "elf_getshdrstrndx" "ac_cv_func_elf_getshdrstrndx" +if test "x$ac_cv_func_elf_getshdrstrndx" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ELF_GETSHDRSTRNDX 1 +_ACEOF + +else + for ac_func in elf_getshstrndx +do : + ac_fn_c_check_func "$LINENO" "elf_getshstrndx" "ac_cv_func_elf_getshstrndx" +if test "x$ac_cv_func_elf_getshstrndx" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ELF_GETSHSTRNDX 1 +_ACEOF + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot run test program while cross compiling +See \`config.log' for more details." "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int main() +{ + return elf_getshstrndx (NULL, 0) == 0; +}, +$as_echo "#define HAVE_ELF_GETSHSTRNDX_GABI 1" >>confdefs.h + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +done + + +fi +done + +LIBS="$save_LIBS" +CPPFLAGS="$save_CPPFLAGS" + if test x$ac_cv_func_mbstowcs = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbstowcs works" >&5 $as_echo_n "checking whether mbstowcs works... " >&6; } @@ -17037,7 +17092,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 17040 "configure" +#line 17095 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -17143,7 +17198,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 17146 "configure" +#line 17201 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -20609,6 +20664,19 @@ cat >>confdefs.h <<_ACEOF _ACEOF +# Check to see if we are using gold instead of ld +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using gold" >&5 +$as_echo_n "checking whether we are using gold... " >&6; } +ld_is_gold=no +if test x$gcc_cv_ld != x; then + if $gcc_cv_ld --version 2>/dev/null | sed 1q \ + | grep "GNU gold" > /dev/null; then + ld_is_gold=yes + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_is_gold" >&5 +$as_echo "$ld_is_gold" >&6; } + ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld case "$ORIGINAL_LD_FOR_TARGET" in @@ -21188,13 +21256,36 @@ $as_echo "$gcc_cv_as_hidden" >&6; } if test $in_tree_ld != yes ; then ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q` - if echo "$ld_ver" | grep GNU > /dev/null; then + if test x"$ld_is_gold" = xyes; then + gcc_cv_ld_hidden=yes + elif echo "$ld_ver" | grep GNU > /dev/null; then ld_vers=`echo $ld_ver | sed -n \ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'` ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` + else + case "${target}" in + *-*-solaris2*) + # + # Solaris 2 ld -V output looks like this for a regular version: + # + # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1699 + # + # but test versions add stuff at the end: + # + # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1701:onnv-ab196087-6931056-03/25/10 + # + ld_ver=`$gcc_cv_ld -V 2>&1` + if echo "$ld_ver" | grep 'Solaris Link Editors' > /dev/null; then + ld_vers=`echo $ld_ver | sed -n \ + -e 's,^.*: 5\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\1,p'` + ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` + ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` + fi + ;; + esac fi fi @@ -21386,7 +21477,23 @@ else sed -e /.eh_frame/!d -e N | grep READONLY > /dev/null; then gcc_cv_as_cfi_directive=no else - gcc_cv_as_cfi_directive=yes + case "$target" in + i?86-*-solaris2.1[0-9]*) + # On Solaris/x86, make sure that GCC and gas agree on using + # read-only .eh_frame sections for 64-bit. + if $gcc_cv_as --64 -o conftest.o conftest.s > /dev/null 2>&1 && \ + $gcc_cv_objdump -h conftest.o 2>/dev/null | \ + sed -e /.eh_frame/!d -e N | \ + grep READONLY > /dev/null; then + gcc_cv_as_cfi_directive=yes + else + gcc_cv_as_cfi_directive=no + fi + ;; + *) + gcc_cv_as_cfi_directive=yes + ;; + esac fi else # no objdump, err on the side of caution @@ -21421,7 +21528,7 @@ else echo ' .text .cfi_startproc .cfi_adjust_cfa_offset 64 - .skip 512, 0 + .skip 75040, 0 .cfi_adjust_cfa_offset 128 .cfi_endproc' > conftest.s if { ac_try='$gcc_cv_as $gcc_cv_as_flags -o conftest.o conftest.s >&5' @@ -21433,7 +21540,7 @@ else then if $gcc_cv_readelf -wf conftest.o 2>/dev/null \ - | grep 'DW_CFA_advance_loc[12]:[ ][ ]*512[ ]' >/dev/null; then + | grep 'DW_CFA_advance_loc[24]:[ ][ ]*75040[ ]' >/dev/null; then gcc_cv_as_cfi_advance_working=yes fi @@ -21769,13 +21876,15 @@ fi $as_echo "$gcc_cv_as_comdat_group_percent" >&6; } fi -if test $in_tree_ld = yes ; then +if test x"$ld_is_gold" = xyes; then + comdat_group=yes +elif test $in_tree_ld = yes ; then comdat_group=no if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \ && test $in_tree_ld_is_elf = yes; then comdat_group=yes fi -elif test x"$ld_vers" != x; then +elif echo "$ld_ver" | grep GNU > /dev/null; then comdat_group=yes if test 0"$ld_date" -lt 20050308; then if test -n "$ld_date"; then @@ -21788,9 +21897,32 @@ elif test x"$ld_vers" != x; then fi fi else - # assume linkers other than GNU ld don't support COMDAT group - comdat_group=no + case "${target}" in + *-*-solaris2.1[1-9]*) + # Sun ld has COMDAT group support since Solaris 9, but it doesn't + # interoperate with GNU as until Solaris 11 build 130, i.e. ld + # version 1.688. + # + # FIXME: Maybe need to refine later when COMDAT group support with + # Sun as is implemented. + if test "$ld_vers_major" -gt 1 || test "$ld_vers_minor" -ge 1688; then + comdat_group=yes + else + comdat_group=no + fi + ;; + *) + # Assume linkers other than GNU ld don't support COMDAT group. + comdat_group=no + ;; + esac +fi +# Allow overriding the automatic COMDAT group tests above. +# Check whether --enable-comdat was given. +if test "${enable_comdat+set}" = set; then : + enableval=$enable_comdat; comdat_group="$enable_comdat" fi + if test $comdat_group = no; then gcc_cv_as_comdat_group=no gcc_cv_as_comdat_group_percent=no @@ -21930,25 +22062,53 @@ foo: .long 25 tls_first_minor=17 ;; i[34567]86-*-*) - conftest_s=' - .section ".tdata","awT",@progbits + case "$target" in + i[34567]86-*-solaris2.[89]*) + # TLS was introduced in the Solaris 9 4/04 release but + # we do not enable it by default on Solaris 9 either. + if test "x$enable_tls" = xyes ; then + on_solaris=yes + else + enable_tls=no; + fi + ;; + i[34567]86-*-solaris2.*) + on_solaris=yes + ;; + *) + on_solaris=no + ;; + esac + if test x$on_solaris = xyes && test x$gas_flag = xno; then + conftest_s=' + .section .tdata,"awt",@progbits' + tls_first_major=0 + tls_first_minor=0 + +$as_echo "#define TLS_SECTION_ASM_FLAG 't'" >>confdefs.h + + else + conftest_s=' + .section ".tdata","awT",@progbits' + tls_first_major=2 + tls_first_minor=14 + tls_as_opt="--fatal-warnings" + fi + conftest_s="$conftest_s foo: .long 25 .text movl %gs:0, %eax - leal foo@TLSGD(,%ebx,1), %eax - leal foo@TLSLDM(%ebx), %eax - leal foo@DTPOFF(%eax), %edx - movl foo@GOTTPOFF(%ebx), %eax - subl foo@GOTTPOFF(%ebx), %eax - addl foo@GOTNTPOFF(%ebx), %eax - movl foo@INDNTPOFF, %eax - movl $foo@TPOFF, %eax - subl $foo@TPOFF, %eax - leal foo@NTPOFF(%ecx), %eax' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt=--fatal-warnings - ;; + leal foo@tlsgd(,%ebx,1), %eax + leal foo@tlsldm(%ebx), %eax + leal foo@dtpoff(%eax), %edx + movl foo@gottpoff(%ebx), %eax + subl foo@gottpoff(%ebx), %eax + addl foo@gotntpoff(%ebx), %eax + movl foo@indntpoff, %eax + movl \$foo@tpoff, %eax + subl \$foo@tpoff, %eax + leal foo@ntpoff(%ecx), %eax" + ;; x86_64-*-*) conftest_s=' .section ".tdata","awT",@progbits @@ -22128,7 +22288,7 @@ foo: .long 25 ;; sparc*-*-*) case "$target" in - sparc*-sun-solaris2.[56789]*) + sparc*-sun-solaris2.[89]*) # TLS was introduced in the Solaris 9 4/04 release but # we do not enable it by default on Solaris 9 either. if test "x$enable_tls" = xyes ; then @@ -22491,6 +22651,58 @@ $as_echo "#define HAVE_AS_RELAX_OPTION 1" >>confdefs.h fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for GOTDATA_OP relocs" >&5 +$as_echo_n "checking assembler for GOTDATA_OP relocs... " >&6; } +if test "${gcc_cv_as_sparc_gotdata_op+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + gcc_cv_as_sparc_gotdata_op=no + if test x$gcc_cv_as != x; then + echo '.text +foo: + nop +bar: + sethi %gdop_hix22(foo), %g1 + xor %g1, %gdop_lox10(foo), %g1 + ld [%l7 + %g1], %g2, %gdop(foo)' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -K PIC -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + if test x$gcc_cv_ld != x \ + && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then + if $gcc_cv_ld -v | grep GNU >/dev/null 2>&1; then + if test x$gcc_cv_objdump != x; then + if $gcc_cv_objdump -s -j .text conftest 2> /dev/null \ + | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1; then + gcc_cv_as_sparc_gotdata_op=no + else + gcc_cv_as_sparc_gotdata_op=yes + fi + fi + else + gcc_cv_as_sparc_gotdata_op=yes + fi + fi + rm -f conftest + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_gotdata_op" >&5 +$as_echo "$gcc_cv_as_sparc_gotdata_op" >&6; } +if test $gcc_cv_as_sparc_gotdata_op = yes; then + +$as_echo "#define HAVE_AS_SPARC_GOTDATA_OP 1" >>confdefs.h + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for unaligned pcrel relocs" >&5 $as_echo_n "checking assembler for unaligned pcrel relocs... " >&6; } if test "${gcc_cv_as_sparc_ua_pcrel+set}" = set; then : @@ -24221,8 +24433,8 @@ if test $gcc_cv_as_gnu_unique_object = yes; then # Also check for ld.so support, i.e. glibc 2.11 or higher. if test x$host = x$build -a x$host = x$target && glibcver=`ldd --version 2>/dev/null | sed 's/.* //;q'`; then - glibcmajor=`expr "$glibcver" : "\(0-9*\)"` - glibcminor=`expr "$glibcver" : "2-9*\.\(0-9*\)"` + glibcmajor=`expr "$glibcver" : "\([0-9]*\)"` + glibcminor=`expr "$glibcver" : "[2-9]*\.\([0-9]*\)"` glibcnum=`expr $glibcmajor \* 1000 + $glibcminor` if test "$glibcnum" -ge 2011 ; then enable_gnu_unique_object=yes @@ -24570,7 +24782,9 @@ else case "$target" in *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then - if test "x$with_sysroot" = x; then + if test "x$with_headers" != x; then + glibc_header_dir=$with_headers + elif test "x$with_sysroot" = x; then glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include" elif test "x$with_build_sysroot" != "x"; then glibc_header_dir="${with_build_sysroot}/usr/include" @@ -25073,10 +25287,14 @@ $as_echo_n "checking for exported symbols... " >&6; } $as_echo_n "checking for -rdynamic... " >&6; } ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1 if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then + plugin_rdynamic=yes pluginlibs="-rdynamic" else + plugin_rdynamic=no enable_plugin=no fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_rdynamic" >&5 +$as_echo "$plugin_rdynamic" >&6; } fi # Check -ldl