aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-01-02 14:13:37 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-01-02 14:13:37 +0000
commit7413962d04a4f1864db684a2d9a49d043322f299 (patch)
treed3cf010a771c7989f27711166a6e0dcd842e9115
parent04176b913cb2aa24244d340afc3c793fff5c0c25 (diff)
downloadgcc-7413962d04a4f1864db684a2d9a49d043322f299.zip
gcc-7413962d04a4f1864db684a2d9a49d043322f299.tar.gz
gcc-7413962d04a4f1864db684a2d9a49d043322f299.tar.bz2
re PR bootstrap/41529 (LTO configuration should detect if the target is ELF)
2010-01-02 Richard Guenther <rguenther@suse.de> PR lto/41529 * configure.ac: Include config/elf.m4. Disable LTO if not builting for an elf target. * configure: Regenerate. config/ * elf.m4: New file. From-SVN: r155565
-rw-r--r--ChangeLog7
-rw-r--r--config/ChangeLog5
-rw-r--r--config/elf.m427
-rwxr-xr-xconfigure29
-rw-r--r--configure.ac11
5 files changed, 79 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index aa1bbab..b346eeb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-01-02 Richard Guenther <rguenther@suse.de>
+
+ PR lto/41529
+ * configure.ac: Include config/elf.m4. Disable LTO if not
+ builting for an elf target.
+ * configure: Regenerate.
+
2009-12-27 Christopher Faylor <me+cygwin@cgf.cx>
* MAINTAINERS: Change my email address.
diff --git a/config/ChangeLog b/config/ChangeLog
index 9e524fc..a881349 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,8 @@
+2010-01-02 Richard Guenther <rguenther@suse.de>
+
+ PR lto/41529
+ * elf.m4: New file.
+
2009-11-30 Joseph Myers <joseph@codesourcery.com>
* largefile.m4 (ACX_LARGEFILE): Require AC_CANONICAL_HOST and
diff --git a/config/elf.m4 b/config/elf.m4
new file mode 100644
index 0000000..44d0249
--- /dev/null
+++ b/config/elf.m4
@@ -0,0 +1,27 @@
+dnl Copyright (C) 2010 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Paolo Bonzini.
+
+dnl usage: ACX_ELF_TARGET_IFELSE([if-elf], [if-not-elf])
+AC_DEFUN([ACX_ELF_TARGET_IFELSE], [
+AC_REQUIRE([AC_CANONICAL_TARGET])
+
+target_elf=no
+case $target in
+ *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \
+ *-msdosdjgpp* | *-netware* | *-vms* | *-wince* | *-*-pe* | \
+ alpha*-dec-osf* | *-interix*)
+ target_elf=no
+ ;;
+ *)
+ target_elf=yes
+ ;;
+esac
+
+AS_IF([test $target_elf = yes], [$1], [$2])
+])
diff --git a/configure b/configure
index 0223683..f1df3a5 100755
--- a/configure
+++ b/configure
@@ -5889,6 +5889,35 @@ else
fi
+
+
+
+target_elf=no
+case $target in
+ *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \
+ *-msdosdjgpp* | *-netware* | *-vms* | *-wince* | *-*-pe* | \
+ alpha*-dec-osf* | *-interix*)
+ target_elf=no
+ ;;
+ *)
+ target_elf=yes
+ ;;
+esac
+
+if test $target_elf = yes; then :
+
+else
+ if test x"$default_enable_lto" = x"yes" ; then
+ enable_lto=no
+else
+ if test x"$enable_lto" = x"yes"; then
+ as_fn_error "LTO support requires an ELF target." "$LINENO" 5
+ fi
+fi
+default_enable_lto=no
+fi
+
+
if test x"$enable_lto" = x"yes" ; then
# Make sure that libelf.h and gelf.h are available.
diff --git a/configure.ac b/configure.ac
index dbc1565..9a71232 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,6 +22,7 @@
m4_include(config/acx.m4)
m4_include(config/override.m4)
m4_include(config/proginstall.m4)
+m4_include(config/elf.m4)
AC_INIT(move-if-change)
AC_PREREQ(2.64)
@@ -1601,6 +1602,16 @@ AC_ARG_ENABLE(lto,
enable_lto=$enableval,
enable_lto=yes; default_enable_lto=yes)
+ACX_ELF_TARGET_IFELSE([],
+if test x"$default_enable_lto" = x"yes" ; then
+ enable_lto=no
+else
+ if test x"$enable_lto" = x"yes"; then
+ AC_MSG_ERROR([LTO support requires an ELF target.])
+ fi
+fi
+default_enable_lto=no)
+
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