]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR bootstrap/41529 (LTO configuration should detect if the target is ELF)
authorRichard Guenther <rguenther@suse.de>
Sat, 2 Jan 2010 14:13:37 +0000 (14:13 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Sat, 2 Jan 2010 14:13:37 +0000 (14:13 +0000)
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

ChangeLog
config/ChangeLog
config/elf.m4 [new file with mode: 0644]
configure
configure.ac

index aa1bbabda8dab613b7e90f76cbc69a4efe3a599c..b346eeb8b0ba7b980c3ea50bb65b50a1f318d77f 100644 (file)
--- 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.
index 9e524fc8737fb0fd06251923b30df1394539dfcf..a881349ba8466cb684ad01afb3951ffe947b5449 100644 (file)
@@ -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 (file)
index 0000000..44d0249
--- /dev/null
@@ -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])
+])
index 022368379820129b0f2c914d0007568a6f21b992..f1df3a51cc9e7883040eb4d5cde6a68111d1502e 100755 (executable)
--- 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.
 
index dbc1565ec2a6b30d532f6c2a828f1537ecce0334..9a7123227cdfd9846c76c66d1e3b075a3dd081c1 100644 (file)
@@ -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