Sync with gcc repository.
This commit is contained in:
154
configure.ac
154
configure.ac
@ -260,6 +260,13 @@ if test x$with_gnu_as = xno ; then
|
||||
noconfigdirs="$noconfigdirs gas"
|
||||
fi
|
||||
|
||||
use_included_zlib=
|
||||
# Make sure we don't let ZLIB be added if we didn't want it.
|
||||
if test x$with_system_zlib = xyes ; then
|
||||
use_included_zlib=no
|
||||
noconfigdirs="$noconfigdirs zlib"
|
||||
fi
|
||||
|
||||
# some tools are so dependent upon X11 that if we're not building with X,
|
||||
# it's not even worth trying to configure, much less build, that tool.
|
||||
|
||||
@ -1611,6 +1618,127 @@ fi
|
||||
AC_SUBST(clooglibs)
|
||||
AC_SUBST(clooginc)
|
||||
|
||||
# Check for LTO support.
|
||||
AC_ARG_ENABLE(lto,
|
||||
[ --enable-lto enable link time optimization support],
|
||||
enable_lto=$enableval,
|
||||
enable_lto=yes; default_enable_lto=yes)
|
||||
|
||||
if test x"$enable_lto" = x"yes" ; then
|
||||
# Make sure that libelf.h and gelf.h are available.
|
||||
AC_ARG_WITH(libelf, [ --with-libelf=PATH Specify prefix directory for the installed libelf package
|
||||
Equivalent to --with-libelf-include=PATH/include
|
||||
plus --with-libelf-lib=PATH/lib])
|
||||
|
||||
AC_ARG_WITH(libelf_include, [ --with-libelf-include=PATH Specify directory for installed libelf include files])
|
||||
|
||||
AC_ARG_WITH(libelf_lib, [ --with-libelf-lib=PATH Specify the directory for the installed libelf library])
|
||||
|
||||
case $with_libelf in
|
||||
"")
|
||||
libelflibs="-lelf"
|
||||
libelfinc="-I/usr/include/libelf"
|
||||
;;
|
||||
*)
|
||||
libelflibs="-L$with_libelf/lib -lelf"
|
||||
libelfinc="-I$with_libelf/include -I$with_libelf/include/libelf"
|
||||
LIBS="$libelflibs $LIBS"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "x$with_libelf_include" != x; then
|
||||
libelfinc="-I$with_libelf_include"
|
||||
fi
|
||||
|
||||
if test "x$with_libelf_lib" != x; then
|
||||
libelflibs="-L$with_libelf_lib -lelf"
|
||||
LIBS="$libelflibs $LIBS"
|
||||
fi
|
||||
|
||||
if test "x$with_libelf$with_libelf_include$with_libelf_lib" = x \
|
||||
&& test -d ${srcdir}/libelf; then
|
||||
libelflibs='-L$$r/$(HOST_SUBDIR)/libelf/.libs -L$$r/$(HOST_SUBDIR)/libelf/_libs -lelf '
|
||||
libelfinc='-I$$r/$(HOST_SUBDIR)/libelf/include -I$$s/libelf/include'
|
||||
LIBS="$libelflibs $LIBS"
|
||||
fi
|
||||
|
||||
saved_CFLAGS="$CFLAGS"
|
||||
saved_CPPFLAGS="$CPPFLAGS"
|
||||
saved_LIBS="$LIBS"
|
||||
|
||||
CFLAGS="$CFLAGS $libelfinc"
|
||||
CPPFLAGS="$CPPFLAGS $libelfinc"
|
||||
LIBS="$LIBS $libelflibs"
|
||||
|
||||
AC_CHECK_HEADERS(libelf.h, [have_libelf_h=yes])
|
||||
AC_CHECK_HEADERS(gelf.h, [have_gelf_h=yes])
|
||||
|
||||
AC_CHECK_HEADERS(libelf/libelf.h, [have_libelf_libelf_h=yes])
|
||||
AC_CHECK_HEADERS(libelf/gelf.h, [have_libelf_gelf_h=yes])
|
||||
|
||||
# If we couldn't find libelf.h and the user forced it, emit an error.
|
||||
if test x"$have_libelf_h" != x"yes" \
|
||||
&& test x"$have_libelf_libelf_h" != x"yes" ; then
|
||||
if test x"$default_enable_lto" != x"yes" ; then
|
||||
AC_MSG_ERROR([LTO support requires libelf.h or libelf/libelf.h.])
|
||||
else
|
||||
enable_lto=no
|
||||
libelflibs=
|
||||
libelfinc=
|
||||
fi
|
||||
fi
|
||||
|
||||
# If we couldn't find gelf.h and the user forced it, emit an error.
|
||||
if test x"$have_gelf_h" != x"yes" \
|
||||
&& test x"$have_libelf_gelf_h" != x"yes" ; then
|
||||
if test x"$default_enable_lto" != x"yes" ; then
|
||||
AC_MSG_ERROR([LTO support requires gelf.h or libelf/gelf.h.])
|
||||
else
|
||||
enable_lto=no
|
||||
libelflibs=
|
||||
libelfinc=
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check that the detected libelf has the functions we need. We cannot
|
||||
# rely on just detecting the headers since they do not include
|
||||
# versioning information. Add functions, if needed.
|
||||
if test x"$enable_lto" = x"yes" ; then
|
||||
AC_MSG_CHECKING([for the correct version of libelf])
|
||||
AC_TRY_LINK(
|
||||
[#include <libelf.h>],[
|
||||
elf_errmsg (0);
|
||||
elf_getscn (0, 0);
|
||||
elf_nextscn (0, 0);
|
||||
elf_strptr (0, 0, 0);
|
||||
elf_getident (0, 0);
|
||||
elf_getshdrstrndx (0, 0);
|
||||
elf_begin (0, 0, 0);
|
||||
elf_ndxscn (0);
|
||||
elf_end (0);
|
||||
],
|
||||
[AC_MSG_RESULT([yes]);],
|
||||
[AC_MSG_RESULT([no]); enable_lto=no; libelflibs= ; libelfinc= ]
|
||||
)
|
||||
|
||||
# If we couldn't enable LTO and the user forced it, emit an error.
|
||||
if test x"$enable_lto" = x"no" \
|
||||
&& test x"$default_enable_lto" != x"yes" ; then
|
||||
AC_MSG_ERROR([To enable LTO, GCC requires libelf v0.8.12+.
|
||||
Try the --with-libelf, --with-libelf-include and --with-libelf-lib options
|
||||
to specify its location.])
|
||||
fi
|
||||
fi
|
||||
|
||||
CFLAGS="$saved_CFLAGS"
|
||||
CPPFLAGS="$saved_CPPFLAGS"
|
||||
LIBS="$saved_LIBS"
|
||||
|
||||
# Flags needed for libelf.
|
||||
AC_SUBST(libelflibs)
|
||||
AC_SUBST(libelfinc)
|
||||
fi
|
||||
|
||||
|
||||
# By default, C is the only stage 1 language.
|
||||
stage1_languages=,c,
|
||||
@ -1679,6 +1807,18 @@ if test -d ${srcdir}/gcc; then
|
||||
done
|
||||
|
||||
new_enable_languages=,c,
|
||||
|
||||
# If LTO is enabled, add the LTO front end.
|
||||
extra_host_libiberty_configure_flags=
|
||||
if test "$enable_lto" = "yes" ; then
|
||||
new_enable_languages="${new_enable_languages}lto,"
|
||||
if test "${ENABLE_GOLD}" = "yes" ; then
|
||||
configdirs="$configdirs lto-plugin"
|
||||
extra_host_libiberty_configure_flags=--enable-shared
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(extra_host_libiberty_configure_flags)
|
||||
|
||||
missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
|
||||
potential_languages=,c,
|
||||
|
||||
@ -2088,7 +2228,7 @@ if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set with_gnu_as and with_gnu_ld as appropriate.
|
||||
# Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
|
||||
#
|
||||
# This is done by determining whether or not the appropriate directory
|
||||
# is available, and by checking whether or not specific configurations
|
||||
@ -2099,7 +2239,9 @@ fi
|
||||
#
|
||||
# If the default for a toolchain is to use GNU as and ld, and you don't
|
||||
# want to do that, then you should use the --without-gnu-as and
|
||||
# --without-gnu-ld options for the configure script.
|
||||
# --without-gnu-ld options for the configure script. Similarly, if
|
||||
# the default is to use the included zlib and you don't want to do that,
|
||||
# you should use the --with-system-zlib option for the configure script.
|
||||
|
||||
if test x${use_gnu_as} = x &&
|
||||
echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
|
||||
@ -2113,6 +2255,14 @@ if test x${use_gnu_ld} = x &&
|
||||
extra_host_args="$extra_host_args --with-gnu-ld"
|
||||
fi
|
||||
|
||||
if test x${use_included_zlib} = x &&
|
||||
echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
|
||||
:
|
||||
else
|
||||
with_system_zlib=yes
|
||||
extra_host_args="$extra_host_args --with-system-zlib"
|
||||
fi
|
||||
|
||||
# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
|
||||
# can detect this case.
|
||||
|
||||
|
Reference in New Issue
Block a user