X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fconfigure.ac;h=c067770cb5935f6e2eedd9e6217fb0260213516a;hb=49b6dba67f06de2ec02bf958c556fc34b171408e;hp=0ffa8f630fe94e1c85175905b28f347a2909b7c3;hpb=ae74c4915e42582ba8b8127b6fdf64de0d0ad62b;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/configure.ac b/gcc/configure.ac index 0ffa8f630fe..c067770cb59 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -2005,6 +2005,29 @@ else AC_MSG_RESULT($gcc_cv_objdump) fi +# Figure out what readelf we will be using. +AS_VAR_SET_IF(gcc_cv_readelf,, [ +if test -f $gcc_cv_binutils_srcdir/configure.in \ + && test -f ../binutils/Makefile \ + && test x$build = x$host; then + # Single tree build which includes binutils. + gcc_cv_readelf=../binutils/readelf$build_exeext +elif test -x readelf$build_exeext; then + gcc_cv_readelf=./readelf$build_exeext +else + AC_PATH_PROG(gcc_cv_readelf, readelf) +fi]) + +AC_MSG_CHECKING(what readelf to use) +if test "$gcc_cv_readelf" = ../binutils/readelf$build_exeext; then + # Single tree build which includes binutils. + AC_MSG_RESULT(newly built readelf) +elif test x$gcc_cv_readelf = x; then + AC_MSG_RESULT(not found) +else + AC_MSG_RESULT($gcc_cv_readelf) +fi + # Figure out what assembler alignment features are present. gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align, [2,6,0],, @@ -2081,10 +2104,10 @@ AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden, gcc_cv_ld_hidden=yes fi else +changequote(,)dnl gcc_cv_ld_hidden=yes ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q` if echo "$ld_ver" | grep GNU > /dev/null; then -changequote(,)dnl 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'` @@ -2108,18 +2131,21 @@ changequote(,)dnl gcc_cv_ld_hidden=no fi fi -changequote([,])dnl fi else case "${target}" in hppa64*-*-hpux* | ia64*-*-hpux*) gcc_cv_ld_hidden=yes ;; + *-*-solaris2.9* | *-*-solaris2.1[0-9]*) + gcc_cv_ld_hidden=yes + ;; *) gcc_cv_ld_hidden=no ;; esac fi +changequote([,])dnl fi]) libgcc_visibility=no AC_SUBST(libgcc_visibility) @@ -2234,8 +2260,30 @@ gcc_GAS_CHECK_FEATURE([cfi directives], gcc_cv_as_cfi_directive, gcc_cv_as_cfi_directive=yes ;; esac]) +if test $gcc_cv_as_cfi_directive = yes && test x$gcc_cv_readelf != x; then +gcc_GAS_CHECK_FEATURE([working cfi advance], gcc_cv_as_cfi_advance_working, + ,, +[ .text + .cfi_startproc + .cfi_adjust_cfa_offset 64 + .skip 512, 0 + .cfi_adjust_cfa_offset 128 + .cfi_endproc], +[ +changequote(,)dnl +if $gcc_cv_readelf -wf conftest.o 2>/dev/null \ + | grep 'DW_CFA_advance_loc[12]:[ ][ ]*512[ ]' >/dev/null; then + gcc_cv_as_cfi_advance_working=yes +fi +changequote([,])dnl +]) +else + # no readelf, err on the side of caution + gcc_cv_as_cfi_advance_working=no +fi AC_DEFINE_UNQUOTED(HAVE_GAS_CFI_DIRECTIVE, - [`if test $gcc_cv_as_cfi_directive = yes; then echo 1; else echo 0; fi`], + [`if test $gcc_cv_as_cfi_directive = yes \ + && test $gcc_cv_as_cfi_advance_working = yes; then echo 1; else echo 0; fi`], [Define 0/1 if your assembler supports CFI directives.]) gcc_GAS_CHECK_FEATURE([cfi personality directive],