diff options
Diffstat (limited to 'gcc/configure')
-rwxr-xr-x | gcc/configure | 59 |
1 files changed, 57 insertions, 2 deletions
diff --git a/gcc/configure b/gcc/configure index fc4013b..0515812 100755 --- a/gcc/configure +++ b/gcc/configure @@ -671,6 +671,8 @@ subdirs slibdir dollar gcc_tooldir +LTO_USE_LIBELF +LTO_BINARY_READER enable_lto MAINT zlibinc @@ -17092,7 +17094,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 17095 "configure" +#line 17097 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -17198,7 +17200,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 17201 "configure" +#line 17203 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -22942,6 +22944,48 @@ if test $gcc_cv_as_ix86_pe_secrel32 = yes; then $as_echo "#define HAVE_GAS_PE_SECREL32_RELOC 1" >>confdefs.h fi + # Test if the assembler supports the extended form of the .section + # directive that specifies section alignment. LTO support uses this, + # but normally only after installation, so we warn but don't fail the + # configure if LTO is enabled but the assembler does not support it. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .section with alignment" >&5 +$as_echo_n "checking assembler for .section with alignment... " >&6; } +if test "${gcc_cv_as_section_has_align+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + gcc_cv_as_section_has_align=no + if test $in_tree_gas = yes; then + if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 20 \) \* 1000 + 1` + then gcc_cv_as_section_has_align=yes +fi + elif test x$gcc_cv_as != x; then + echo '.section lto_test,"dr0"' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -fatal-warnings -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 + gcc_cv_as_section_has_align=yes + 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_section_has_align" >&5 +$as_echo "$gcc_cv_as_section_has_align" >&6; } + + if test x$gcc_cv_as_section_has_align != xyes; then + case ",$enable_languages," in + *,lto,*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LTO for $target requires binutils >= 2.20.1, but version found appears insufficient; LTO will not work until binutils is upgraded." >&5 +$as_echo "$as_me: WARNING: LTO for $target requires binutils >= 2.20.1, but version found appears insufficient; LTO will not work until binutils is upgraded." >&2;} + ;; + esac + fi ;; esac @@ -25078,6 +25122,17 @@ $as_echo "#define ENABLE_LTO 1" >>confdefs.h enable_lto=yes + # LTO needs to speak the platform's object file format, and has a + # number of implementations of the required binary file access APIs. + # ELF is the most common, and default. We only link libelf if ELF + # is indeed the selected format. + LTO_BINARY_READER=${lto_binary_reader} + LTO_USE_LIBELF=-lelf + if test "x$lto_binary_reader" != "xlto-elf" ; then + LTO_USE_LIBELF= + fi + + ;; *) ;; esac |