[PATCH RFC 3/6] Sync ./config between GCC and Binutils
Jan-Benedict Glaw
jbglaw@lug-owl.de
Sun Nov 23 07:28:00 GMT 2014
This patch pulls in the missing pieces from GCC's ./config directory.
It consists of these changes:
2014-04-25 Marc Glisse <marc.glisse@inria.fr>
PR target/43538
* mt-gnu: Don't reset CXXFLAGS_FOR_TARGET.
2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
* mt-nios2-elf: New file.
2014-07-26 Uros Bizjak <ubizjak@gmail.com>
PR target/47230
* mh-alpha-linux: New file.
ommit acd57ca65c08b77f6054c5b58602f6db5861f017
uthor: romangareev <romangareev@138bc75d-0d04-0410-961f-82ee72b054a4>
ate: Mon Aug 18 15:42:11 2014 +0000
* configure.ac: Eliminate ClooG installation dependency.
* configure: Regenerate.
* Makefile.tpl: Add definition of ISLLIBS and HOST_ISLLIBS.
* Makefile.in: Regenerate.
[config/]
* cloog.m4: Remove the path to isllibs from clooglibs.
* isl.m4: Add paths to islinc, isllibs.
[gcc/]
* Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
* config.in: Add undef of HAVE_isl.
* configure: Regenerate.
* configure.ac: Add definition of HAVE_isl.
* graphite-blocking.c: Add checking of HAVE_isl.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-isl-ast-to-gimple.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* toplev.c: Replace the checking of HAVE_cloog with the checking
of HAVE_isl.
2014-08-21 Bin Cheng <bin.cheng@arm.com>
* isl.m4 (ISL_CHECK_VERSION): Check link of isl library
for cross_compiling.
2014-09-01 Andi Kleen <ak@linux.intel.com>
* bootstrap-lto.mk: Implement slim bootstrap.
2014-10-27 Tom Tromey <tromey@redhat.com>
* gcc-plugin.m4: New file.
2014-11-13 Kirill Yukhin <kirill.yukhin@intel.com>
* target-posix: New file.
2014-11-17 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/63888
* bootstrap-asan.mk (ASAN_OPTIONS): Export "detect_leaks=0".
2014-11-17 Bob Dunlop <bob.dunlop@xyzzy.org.uk>
* mt-ospace (CFLAGS_FOR_TARGET): Append -g -Os rather than
overwriting.
(CXXFLAGS_FOR_TARGET): Similarly.
---
config/bootstrap-asan.mk | 3 +
config/bootstrap-lto.mk | 16 +++--
config/cloog.m4 | 152 -----------------------------------------------
config/gcc-plugin.m4 | 113 +++++++++++++++++++++++++++++++++++
config/isl.m4 | 25 +++-----
config/mh-alpha-linux | 3 +
config/mt-gnu | 2 +-
config/mt-ospace | 4 +-
config/target-posix | 12 ++++
9 files changed, 153 insertions(+), 177 deletions(-)
delete mode 100644 config/cloog.m4
create mode 100644 config/gcc-plugin.m4
create mode 100644 config/mh-alpha-linux
create mode 100644 config/target-posix
diff --git a/config/bootstrap-asan.mk b/config/bootstrap-asan.mk
index fbef021..52ef30e 100644
--- a/config/bootstrap-asan.mk
+++ b/config/bootstrap-asan.mk
@@ -1,5 +1,8 @@
# This option enables -fsanitize=address for stage2 and stage3.
+# Suppress LeakSanitizer in bootstrap.
+export ASAN_OPTIONS="detect_leaks=0"
+
STAGE2_CFLAGS += -fsanitize=address
STAGE3_CFLAGS += -fsanitize=address
POSTSTAGE1_LDFLAGS += -fsanitize=address -static-libasan \
diff --git a/config/bootstrap-lto.mk b/config/bootstrap-lto.mk
index 27bad15..9e065e1 100644
--- a/config/bootstrap-lto.mk
+++ b/config/bootstrap-lto.mk
@@ -1,7 +1,13 @@
-# This option enables LTO for stage2 and stage3.
-# FIXME: Our build system is not yet able to use gcc-ar wrapper, so we need
-# to go with -ffat-lto-objects.
+# This option enables LTO for stage2 and stage3 in slim mode
-STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1 -ffat-lto-objects
-STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 -ffat-lto-objects
+STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1
+STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1
STAGEprofile_CFLAGS += -fno-lto
+
+# assumes the host supports the linker plugin
+LTO_AR = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ar$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
+LTO_RANLIB = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ranlib$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
+
+LTO_EXPORTS = AR="$(LTO_AR)"; export AR; \
+ RANLIB="$(LTO_RANLIB)"; export RANLIB;
+LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)"
diff --git a/config/cloog.m4 b/config/cloog.m4
deleted file mode 100644
index 670cd65..0000000
--- a/config/cloog.m4
+++ /dev/null
@@ -1,152 +0,0 @@
-# This file is part of GCC.
-#
-# GCC is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free
-# Software Foundation; either version 3, or (at your option) any later
-# version.
-#
-# GCC is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GCC; see the file COPYING3. If not see
-# <http://www.gnu.org/licenses/>.
-#
-# Contributed by Andreas Simbuerger <simbuerg@fim.uni-passau.de>
-
-# CLOOG_INIT_FLAGS ()
-# -------------------------
-# Provide configure switches for CLooG support.
-# Initialize clooglibs/clooginc according to the user input.
-AC_DEFUN([CLOOG_INIT_FLAGS],
-[
- AC_ARG_WITH([cloog-include],
- [AS_HELP_STRING(
- [--with-cloog-include=PATH],
- [Specify directory for installed CLooG include files])])
- AC_ARG_WITH([cloog-lib],
- [AS_HELP_STRING(
- [--with-cloog-lib=PATH],
- [Specify the directory for the installed CLooG library])])
-
- AC_ARG_ENABLE(cloog-version-check,
- [AS_HELP_STRING(
- [--disable-cloog-version-check],
- [disable check for CLooG version])],
- ENABLE_CLOOG_CHECK=$enableval,
- ENABLE_CLOOG_CHECK=yes)
-
- # Initialize clooglibs and clooginc.
- case $with_cloog in
- no)
- clooglibs=
- clooginc=
- ;;
- "" | yes)
- ;;
- *)
- clooglibs="-L$with_cloog/lib"
- clooginc="-I$with_cloog/include"
- ;;
- esac
- if test "x${with_cloog_include}" != x ; then
- clooginc="-I$with_cloog_include"
- fi
- if test "x${with_cloog_lib}" != x; then
- clooglibs="-L$with_cloog_lib"
- fi
- dnl If no --with-cloog flag was specified and there is in-tree CLooG
- dnl source, set up flags to use that and skip any version tests
- dnl as we cannot run them reliably before building CLooG
- if test "x${clooginc}" = x && test "x${clooglibs}" = x \
- && test -d ${srcdir}/cloog; then
- clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' '
- clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include -I'${srcdir}'/cloog/include '
- ENABLE_CLOOG_CHECK=no
- AC_MSG_WARN([using in-tree CLooG, disabling version check])
- fi
-
- clooginc="-DCLOOG_INT_GMP ${clooginc}"
- clooglibs="${clooglibs} -lcloog-isl ${isllibs} -lisl"
-]
-)
-
-# CLOOG_REQUESTED (ACTION-IF-REQUESTED, ACTION-IF-NOT)
-# ----------------------------------------------------
-# Provide actions for failed CLooG detection.
-AC_DEFUN([CLOOG_REQUESTED],
-[
- AC_REQUIRE([CLOOG_INIT_FLAGS])
-
- if test "x${with_cloog}" = xno; then
- $2
- elif test "x${with_cloog}" != x \
- || test "x${with_cloog_include}" != x \
- || test "x${with_cloog_lib}" != x ; then
- $1
- else
- $2
- fi
-]
-)
-
-# _CLOOG_CHECK_CT_PROG(MAJOR, MINOR, REVISION)
-# --------------------------------------------
-# Helper for verifying CLooG's compile time version.
-m4_define([_CLOOG_CHECK_CT_PROG],[AC_LANG_PROGRAM(
- [#include "cloog/version.h"],
- [#if CLOOG_VERSION_MAJOR != $1 \
- || CLOOG_VERSION_MINOR != $2 \
- || CLOOG_VERSION_REVISION < $3
- choke me
- #endif])])
-
-# CLOOG_CHECK_VERSION CLOOG_CHECK_VERSION (MAJOR, MINOR, REVISION)
-# ----------------------------------------------------------------
-# Test the found CLooG to be exact of version MAJOR.MINOR and at least
-# REVISION.
-AC_DEFUN([CLOOG_CHECK_VERSION],
-[
- AC_REQUIRE([CLOOG_INIT_FLAGS])
-
- if test "${ENABLE_CLOOG_CHECK}" = yes ; then
- _cloog_saved_CFLAGS=$CFLAGS
- _cloog_saved_LDFLAGS=$LDFLAGS
-
- CFLAGS="${_cloog_saved_CFLAGS} ${clooginc} ${islinc} ${gmpinc}"
- LDFLAGS="${_cloog_saved_LDFLAGS} ${clooglibs} ${isllibs} ${gmplib}"
-
- AC_MSG_CHECKING([for version $1.$2.$3 of CLooG])
- AC_COMPILE_IFELSE([_CLOOG_CHECK_CT_PROG($1,$2,$3)],
- [gcc_cv_cloog=yes],
- [gcc_cv_cloog=no])
- AC_MSG_RESULT([$gcc_cv_cloog])
-
- CFLAGS=$_cloog_saved_CFLAGS
- LDFLAGS=$_cloog_saved_LDFLAGS
- fi
-]
-)
-
-# CLOOG_IF_FAILED (ACTION-IF-FAILED)
-# ----------------------------------
-# Executes ACTION-IF-FAILED, if GRAPHITE was requested and
-# the checks failed.
-AC_DEFUN([CLOOG_IF_FAILED],
-[
- CLOOG_REQUESTED([graphite_requested=yes], [graphite_requested=no])
-
- if test "${gcc_cv_cloog}" = no ; then
- clooglibs=
- clooginc=
- fi
-
- if test "${graphite_requested}" = yes \
- && test "x${clooglibs}" = x \
- && test "x${clooginc}" = x ; then
- $1
- fi
-]
-)
diff --git a/config/gcc-plugin.m4 b/config/gcc-plugin.m4
new file mode 100644
index 0000000..dd06a58
--- /dev/null
+++ b/config/gcc-plugin.m4
@@ -0,0 +1,113 @@
+# gcc-plugin.m4 -*- Autoconf -*-
+# Check whether GCC is able to be built with plugin support.
+
+dnl Copyright (C) 2014 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.
+
+# Check for plugin support.
+# Respects --enable-plugin.
+# Sets the shell variables enable_plugin and pluginlibs.
+AC_DEFUN([GCC_ENABLE_PLUGINS],
+ [# Check for plugin support
+ AC_ARG_ENABLE(plugin,
+ [AS_HELP_STRING([--enable-plugin], [enable plugin support])],
+ enable_plugin=$enableval,
+ enable_plugin=yes; default_plugin=yes)
+
+ pluginlibs=
+
+ case "${host}" in
+ *-*-darwin*)
+ if test x$build = x$host; then
+ export_sym_check="nm${exeext} -g"
+ elif test x$host = x$target; then
+ export_sym_check="$gcc_cv_nm -g"
+ else
+ export_sym_check=
+ fi
+ ;;
+ *)
+ if test x$build = x$host; then
+ export_sym_check="objdump${exeext} -T"
+ elif test x$host = x$target; then
+ export_sym_check="$gcc_cv_objdump -T"
+ else
+ export_sym_check=
+ fi
+ ;;
+ esac
+
+ if test x"$enable_plugin" = x"yes"; then
+
+ AC_MSG_CHECKING([for exported symbols])
+ if test "x$export_sym_check" != x; then
+ echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
+ ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest$ac_exeext > /dev/null 2>&1
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
+ : # No need to use a flag
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([yes])
+ AC_MSG_CHECKING([for -rdynamic])
+ ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest$ac_exeext > /dev/null 2>&1
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
+ plugin_rdynamic=yes
+ pluginlibs="-rdynamic"
+ else
+ plugin_rdynamic=no
+ enable_plugin=no
+ fi
+ AC_MSG_RESULT([$plugin_rdynamic])
+ fi
+ else
+ AC_MSG_RESULT([unable to check])
+ fi
+
+ # Check -ldl
+ saved_LIBS="$LIBS"
+ AC_SEARCH_LIBS([dlopen], [dl])
+ if test x"$ac_cv_search_dlopen" = x"-ldl"; then
+ pluginlibs="$pluginlibs -ldl"
+ fi
+ LIBS="$saved_LIBS"
+
+ # Check that we can build shared objects with -fPIC -shared
+ saved_LDFLAGS="$LDFLAGS"
+ saved_CFLAGS="$CFLAGS"
+ case "${host}" in
+ *-*-darwin*)
+ CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
+ CFLAGS="$CFLAGS -fPIC"
+ LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
+ ;;
+ *)
+ CFLAGS="$CFLAGS -fPIC"
+ LDFLAGS="$LDFLAGS -fPIC -shared"
+ ;;
+ esac
+ AC_MSG_CHECKING([for -fPIC -shared])
+ AC_TRY_LINK(
+ [extern int X;],[return X == 0;],
+ [AC_MSG_RESULT([yes]); have_pic_shared=yes],
+ [AC_MSG_RESULT([no]); have_pic_shared=no])
+ if test x"$have_pic_shared" != x"yes" -o x"$ac_cv_search_dlopen" = x"no"; then
+ pluginlibs=
+ enable_plugin=no
+ fi
+ LDFLAGS="$saved_LDFLAGS"
+ CFLAGS="$saved_CFLAGS"
+
+ # If plugin support had been requested but not available, fail.
+ if test x"$enable_plugin" = x"no" ; then
+ if test x"$default_plugin" != x"yes"; then
+ AC_MSG_ERROR([
+ Building GCC with plugin support requires a host that supports
+ -fPIC, -shared, -ldl and -rdynamic.])
+ fi
+ fi
+ fi
+])
diff --git a/config/isl.m4 b/config/isl.m4
index f45854d..0eece37 100644
--- a/config/isl.m4
+++ b/config/isl.m4
@@ -68,6 +68,9 @@ AC_DEFUN([ISL_INIT_FLAGS],
ENABLE_ISL_CHECK=no
AC_MSG_WARN([using in-tree ISL, disabling version check])
fi
+
+ islinc="-DCLOOG_INT_GMP ${islinc}"
+ isllibs="${isllibs} -lisl"
]
)
@@ -90,20 +93,9 @@ AC_DEFUN([ISL_REQUESTED],
]
)
-# _ISL_CHECK_CT_PROG(MAJOR, MINOR)
-# --------------------------------------------
-# Helper for verifying ISL compile time version.
-m4_define([_ISL_CHECK_CT_PROG],[AC_LANG_PROGRAM(
- [#include <isl/version.h>
- #include <string.h>],
- [if (strncmp (isl_version (), "isl-$1.$2", strlen ("isl-$1.$2")) != 0)
- return 1;
- ])])
-
-# ISL_CHECK_VERSION ISL_CHECK_VERSION (MAJOR, MINOR)
+# ISL_CHECK_VERSION ISL_CHECK_VERSION ()
# ----------------------------------------------------------------
-# Test the found ISL to be exact of version MAJOR.MINOR and at least
-# REVISION.
+# Test that ISL contains functionality added to the minimum expected version.
AC_DEFUN([ISL_CHECK_VERSION],
[
if test "${ENABLE_ISL_CHECK}" = yes ; then
@@ -115,11 +107,10 @@ AC_DEFUN([ISL_CHECK_VERSION],
LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs}"
LIBS="${_isl_saved_LIBS} -lisl"
- AC_MSG_CHECKING([for version $1.$2 of ISL])
- AC_RUN_IFELSE([_ISL_CHECK_CT_PROG($1,$2)],
+ AC_MSG_CHECKING([for compatible ISL])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <isl/val.h>]], [[;]])],
[gcc_cv_isl=yes],
- [gcc_cv_isl=no],
- [gcc_cv_isl=yes])
+ [gcc_cv_isl=no])
AC_MSG_RESULT([$gcc_cv_isl])
CFLAGS=$_isl_saved_CFLAGS
diff --git a/config/mh-alpha-linux b/config/mh-alpha-linux
new file mode 100644
index 0000000..9a9244b
--- /dev/null
+++ b/config/mh-alpha-linux
@@ -0,0 +1,3 @@
+# Prevent GPREL16 relocation truncation
+LDFLAGS += -Wl,--no-relax
+BOOT_LDFLAGS += -Wl,--no-relax
diff --git a/config/mt-gnu b/config/mt-gnu
index 15bf417..5c696f5 100644
--- a/config/mt-gnu
+++ b/config/mt-gnu
@@ -1 +1 @@
-CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -D_GNU_SOURCE
+CXXFLAGS_FOR_TARGET += -D_GNU_SOURCE
diff --git a/config/mt-ospace b/config/mt-ospace
index 7f09104..ce29ff4 100644
--- a/config/mt-ospace
+++ b/config/mt-ospace
@@ -1,3 +1,3 @@
# Build libraries optimizing for space, not speed.
- CFLAGS_FOR_TARGET = -g -Os
- CXXFLAGS_FOR_TARGET = -g -Os
+ CFLAGS_FOR_TARGET += -g -Os
+ CXXFLAGS_FOR_TARGET += -g -Os
diff --git a/config/target-posix b/config/target-posix
new file mode 100644
index 0000000..2fba066
--- /dev/null
+++ b/config/target-posix
@@ -0,0 +1,12 @@
+case "${target}" in
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
+ ;;
+ *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
+ ;;
+ *-*-solaris2* | *-*-hpux11*)
+ ;;
+ *-*-darwin* | *-*-aix*)
+ ;;
+ *)
+ UNSUPPORTED=1 ;;
+ esac
--
1.8.3.2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <https://sourceware.org/pipermail/binutils/attachments/20141123/43ea0a36/attachment.sig>
More information about the Binutils
mailing list