From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-sender-0.a4lg.com (mail-sender.a4lg.com [153.120.152.154]) by sourceware.org (Postfix) with ESMTPS id 6BFF93858D37 for ; Mon, 10 Oct 2022 06:50:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6BFF93858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=irq.a4lg.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=irq.a4lg.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 08FD8300089; Mon, 10 Oct 2022 06:50:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irq.a4lg.com; s=2017s01; t=1665384633; bh=3FiwRAI/PQt/S+V5umgydZ5f7v36KFkVhUU/586ElhQ=; h=Message-ID:Date:Mime-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=d6dfSAftMy0OCBuk/9D25729oKe6MnsoVOTRuW2LCVfgByW1ARyzkvhgcPRJbRfUY Oir/aknTBE/RsslUxqtEwSJf2zfX5CQA6urkZFxRqCFNyn1XDgYSm3aPHjjumpVyp3 mhHmNnr/TXDh+wKLi9k6zbdW4KInv0AMJrJx9he0= Message-ID: <3e8b00a1-6101-0b75-712b-f5b0ea29a24a@irq.a4lg.com> Date: Mon, 10 Oct 2022 15:50:31 +0900 Mime-Version: 1.0 Subject: Re: @CPP_FOR_BUILD@ problem since binutils-2.38 To: Alan Modra , Jan Beulich Cc: "binutils@sourceware.org" References: Content-Language: en-US From: Tsukasa OI In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,KAM_NUMSUBJECT,KAM_SHORT,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2022/10/10 9:43, Alan Modra via Binutils wrote: > On Fri, Oct 07, 2022 at 10:42:45AM +0200, Jan Beulich via Binutils wrote: >> Hmm, this looks to be due to 08ca783430ac syncing only Makefile.* >> with gcc's, but not configure.ac. The CPPFLAGS_FOR_BUILD issue was >> meanwhile addressed in isolation by commit e472ec9fad6d. Nick - >> what is the general policy / approach of syncing top level files? > > Apart from config.guess and config.sub, shared top-level files are > supposed to be owned by the gcc project. This implies patches go into > the gcc repo then the files are copied over to binutils. > > This does not work, for a variety of reasons. > > To merge with gcc's copy of configure.ac we need to revert changes to > configure.ac in the following gcc commits: > dc832fb39fc0 2022-08-25 > fc259b522c0f 2022-06-25 > Then reapply configure.ac changes in binutils from these binutils > commits: > 50ad1254d503 2021-01-09 > bb368aad297f 2022-03-11 > e5f2f7d901ee 2022-07-26 > 2cac01e3ffff 2022-09-26 > Plus copy over gcc's config/ax_cxx_compile_stdcxx.m4, then regenerate > configure. configure.ac diff from current binutila shown below. Hmm, generally good (I wasn't sure that applying GCC's configuration script's DSYMUTIL and OTOOL substitution is safe enough [because I don't have any modern Mac]. As long as this is tested on the GCC side, this change is okay). One thing I have to point out is, this commit creates an unsubstituted variable: PKG_CONFIG_PATH. So, we have to create a GCC patch to subst this and sync with Binutils. Am I right? Thanks, Tsukasa > > diff --git a/configure.ac b/configure.ac > index 0152c69292e..f9a224eb21f 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1,6 +1,6 @@ > # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, > # 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, > -# 2014, 2015, 2016, 2019, 2020 Free Software Foundation, Inc. > +# 2014, 2015, 2016, 2019, 2022 Free Software Foundation, Inc. > # > # This file is free software; you can redistribute it and/or modify it > # under the terms of the GNU General Public License as published by > @@ -24,6 +24,7 @@ m4_include(config/override.m4) > m4_include(config/proginstall.m4) > m4_include(config/elf.m4) > m4_include(config/gcc-plugin.m4) > +m4_include(config/ax_cxx_compile_stdcxx.m4) > m4_include([libtool.m4]) > m4_include([ltoptions.m4]) > m4_include([ltsugar.m4]) > @@ -132,7 +133,7 @@ build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes" > > # these libraries are used by various programs built for the host environment > #f > -host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl libelf libiconv libctf" > +host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libcody libdecnumber gmp mpfr mpc isl libiconv libctf" > > # these tools are built for the host environment > # Note, the powerpc-eabi build depends on sim occurring before gdb in order to > @@ -140,7 +141,7 @@ host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktr > # binutils, gas and ld appear in that order because it makes sense to run > # "make check" in that particular order. > # If --enable-gold is used, "gold" may replace "ld". > -host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools" > +host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools c++tools" > > # these libraries are built for the target environment, and are built after > # the host libraries and the host tools (which may be a cross compiler) > @@ -151,7 +152,6 @@ target_libraries="target-libgcc \ > target-newlib \ > target-libgomp \ > target-liboffloadmic \ > - target-libhsail-rt \ > target-libatomic \ > target-libitm \ > target-libstdc++-v3 \ > @@ -163,7 +163,9 @@ target_libraries="target-libgcc \ > target-libffi \ > target-libobjc \ > target-libada \ > - target-libgo" > + target-libgo \ > + target-libphobos \ > + target-zlib" > > # these tools are built using the target libraries, and are intended to > # run only in the target environment > @@ -249,12 +251,6 @@ fi > AC_ARG_WITH(zstd, > [AS_HELP_STRING([--with-zstd], [Support zstd compressed debug sections (default=auto)])]) > > -# Don't compile the bundled readline/libreadline.a if --with-system-readline > -# is provided. > -if test x$with_system_readline = xyes ; then > - noconfigdirs="$noconfigdirs readline" > -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. > > @@ -307,6 +303,14 @@ AC_ARG_ENABLE(offload-targets, > fi > ], [enable_offload_targets=]) > > +AC_ARG_ENABLE(offload-defaulted, > +[AS_HELP_STRING([--enable-offload-defaulted] > + [If enabled, configured but not installed offload compilers and > + libgomp plugins are silently ignored. Useful for distribution > + compilers where those are in separate optional packages.])], > +[enable_offload_defaulted=$enableval], > +[enable_offload_defaulted=]) > + > # Handle --enable-gold, --enable-ld. > # --disable-gold [--enable-ld] > # Build only ld. Default option. > @@ -339,7 +343,7 @@ case "${ENABLE_GOLD}" in > *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ > | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ > | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \ > - | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-haiku*) > + | *-*-solaris2* | *-*-nto* | *-*-nacl*) > case "${target}" in > *-*-linux*aout* | *-*-linux*oldld*) > ;; > @@ -353,7 +357,7 @@ case "${ENABLE_GOLD}" in > # Check for target supported by gold. > case "${target}" in > i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \ > - | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-*) > + | aarch64*-*-* | tilegx*-*-* | mips*-*-* | s390*-*-* | loongarch*-*-*) > configdirs="$configdirs gold" > if test x${ENABLE_GOLD} = xdefault; then > default_ld=gold > @@ -546,7 +550,7 @@ if test x$enable_libgomp = x ; then > ;; > *-*-darwin* | *-*-aix*) > ;; > - nvptx*-*-*) > + nvptx*-*-* | amdgcn*-*-*) > ;; > *) > noconfigdirs="$noconfigdirs target-libgomp" > @@ -634,26 +638,6 @@ if test -d ${srcdir}/libvtv; then > fi > fi > > - > -# Disable libhsail-rt on unsupported systems. > -if test -d ${srcdir}/libhsail-rt; then > - if test x$enable_libhsail_rt = x; then > - AC_MSG_CHECKING([for libhsail-rt support]) > - if (srcdir=${srcdir}/libhsail-rt; \ > - . ${srcdir}/configure.tgt; \ > - test -n "$UNSUPPORTED") > - then > - AC_MSG_RESULT([no]) > - unsupported_languages="$unsupported_languages brig" > - # This implicitly disables also target-libhsail-rt as it won't > - # get added to the build without BRIG FE. > - else > - AC_MSG_RESULT([yes]) > - fi > - fi > -fi > - > - > # Disable libquadmath for some systems. > case "${target}" in > avr-*-*) > @@ -672,9 +656,16 @@ case "${target}" in > # No hosted I/O support. > noconfigdirs="$noconfigdirs target-libssp" > ;; > + bpf-*-*) > + noconfigdirs="$noconfigdirs target-libssp" > + ;; > powerpc-*-aix* | rs6000-*-aix*) > noconfigdirs="$noconfigdirs target-libssp" > ;; > + pru-*-*) > + # No hosted I/O support. > + noconfigdirs="$noconfigdirs target-libssp" > + ;; > rl78-*-*) > # libssp uses a misaligned load to trigger a fault, but the RL78 > # doesn't fault for those - instead, it gives a build-time error > @@ -688,13 +679,17 @@ case "${target}" in > esac > > # Disable libstdc++-v3 for some systems. > -# Allow user to override this if they pass --enable-libstdc++-v3 > +# Allow user to override this if they pass --enable-libstdcxx > if test "${ENABLE_LIBSTDCXX}" = "default" ; then > case "${target}" in > *-*-vxworks*) > # VxWorks uses the Dinkumware C++ library. > noconfigdirs="$noconfigdirs target-libstdc++-v3" > ;; > + amdgcn*-*-*) > + # Not ported/fails to build when using newlib. > + noconfigdirs="$noconfigdirs target-libstdc++-v3" > + ;; > arm*-wince-pe*) > # the C++ libraries don't build on top of CE's C libraries > noconfigdirs="$noconfigdirs target-libstdc++-v3" > @@ -702,18 +697,83 @@ if test "${ENABLE_LIBSTDCXX}" = "default" ; then > avr-*-*) > noconfigdirs="$noconfigdirs target-libstdc++-v3" > ;; > + bpf-*-*) > + noconfigdirs="$noconfigdirs target-libstdc++-v3" > + ;; > ft32-*-*) > noconfigdirs="$noconfigdirs target-libstdc++-v3" > ;; > esac > fi > > +# Disable C++ on systems where it is known to not work. > +# For testing, you can override this with --enable-languages=c++. > +case ,${enable_languages}, in > + *,c++,*) > + ;; > + *) > + case "${target}" in > + bpf-*-*) > + unsupported_languages="$unsupported_languages c++" > + ;; > + esac > + ;; > +esac > + > +# Disable Objc on systems where it is known to not work. > +# For testing, you can override this with --enable-languages=objc. > +case ,${enable_languages}, in > + *,objc,*) > + ;; > + *) > + case "${target}" in > + bpf-*-*) > + unsupported_languages="$unsupported_languages objc" > + ;; > + esac > + ;; > +esac > + > +# Disable D on systems where it is known to not work. > +# For testing, you can override this with --enable-languages=d. > +case ,${enable_languages}, in > + *,d,*) > + ;; > + *) > + case "${target}" in > + bpf-*-*) > + unsupported_languages="$unsupported_languages d" > + ;; > + esac > + ;; > +esac > + > +# Disable libphobos on unsupported systems. > +# For testing, you can override this with --enable-libphobos. > +if test -d ${srcdir}/libphobos; then > + if test x$enable_libphobos = x; then > + AC_MSG_CHECKING([for libphobos support]) > + if (srcdir=${srcdir}/libphobos; \ > + . ${srcdir}/configure.tgt; \ > + test "$LIBPHOBOS_SUPPORTED" != "yes") > + then > + AC_MSG_RESULT([no]) > + noconfigdirs="$noconfigdirs target-libphobos" > + else > + AC_MSG_RESULT([yes]) > + fi > + fi > +fi > + > # Disable Fortran for some systems. > case "${target}" in > mmix-*-*) > # See . > unsupported_languages="$unsupported_languages fortran" > ;; > + bpf-*-*) > + unsupported_languages="$unsupported_languages fortran" > + ;; > esac > > # Disable libffi for some systems. > @@ -757,6 +817,12 @@ case "${target}" in > arm-wince-pe) > noconfigdirs="$noconfigdirs target-libffi" > ;; > + arm*-*-symbianelf*) > + noconfigdirs="$noconfigdirs target-libffi" > + ;; > + bpf-*-*) > + noconfigdirs="$noconfigdirs target-libffi" > + ;; > cris-*-* | crisv32-*-*) > case "${target}" in > *-*-linux*) > @@ -803,7 +869,7 @@ esac > # Disable the go frontend on systems where it is known to not work. Please keep > # this in sync with contrib/config-list.mk. > case "${target}" in > -*-*-darwin* | *-*-cygwin* | *-*-mingw*) > +*-*-darwin* | *-*-cygwin* | *-*-mingw* | bpf-* ) > unsupported_languages="$unsupported_languages go" > ;; > esac > @@ -835,6 +901,9 @@ if test x$enable_libgo = x; then > *-*-cygwin* | *-*-mingw*) > noconfigdirs="$noconfigdirs target-libgo" > ;; > + bpf-*-*) > + noconfigdirs="$noconfigdirs target-libgo" > + ;; > esac > fi > > @@ -860,6 +929,9 @@ case "${target}" in > i[[3456789]]86-*-*) > libgloss_dir=i386 > ;; > + loongarch*-*-*) > + libgloss_dir=loongarch > + ;; > m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) > libgloss_dir=m68hc11 > ;; > @@ -872,6 +944,9 @@ case "${target}" in > powerpc*-*-*) > libgloss_dir=rs6000 > ;; > + pru-*-*) > + libgloss_dir=pru > + ;; > sparc*-*-*) > libgloss_dir=sparc > ;; > @@ -903,6 +978,9 @@ case "${target}" in > sparc-*-sunos4*) > noconfigdirs="$noconfigdirs target-newlib target-libgloss" > ;; > + bpf-*-*) > + noconfigdirs="$noconfigdirs target-newlib target-libgloss" > + ;; > *-*-aix*) > noconfigdirs="$noconfigdirs target-newlib target-libgloss" > ;; > @@ -951,6 +1029,8 @@ case "${target}" in > noconfigdirs="$noconfigdirs ld gas gdb gprof" > noconfigdirs="$noconfigdirs sim target-rda" > ;; > + amdgcn*-*-*) > + ;; > arm-*-darwin*) > noconfigdirs="$noconfigdirs ld gas gdb gprof" > noconfigdirs="$noconfigdirs sim target-rda" > @@ -974,7 +1054,8 @@ case "${target}" in > *-*-dragonfly*) > ;; > *-*-freebsd*) > - if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \ > + if test "x$with_gmp" = x \ > + && ! test -d ${srcdir}/gmp \ > && test -f /usr/local/include/gmp.h; then > with_gmp=/usr/local > fi > @@ -1014,6 +1095,9 @@ case "${target}" in > # newlib is not 64 bit ready > noconfigdirs="$noconfigdirs target-newlib target-libgloss" > ;; > + bpf-*-*) > + noconfigdirs="$noconfigdirs target-libobjc target-libbacktrace" > + ;; > sh*-*-pe|mips*-*-pe|*arm-wince-pe) > noconfigdirs="$noconfigdirs tcl tk itcl libgui sim" > ;; > @@ -1232,6 +1316,11 @@ case "${target}" in > wasm32-*-*) > noconfigdirs="$noconfigdirs ld" > ;; > + loongarch*-*-linux*) > + ;; > + loongarch*-*-*) > + noconfigdirs="$noconfigdirs gprof" > + ;; > esac > > # If we aren't building newlib, then don't build libgloss, since libgloss > @@ -1267,7 +1356,7 @@ case "${host}" in > hppa*-*) > host_makefile_frag="config/mh-pa" > ;; > - *-*-darwin*) > + i?86-*-darwin[[89]]* | i?86-*-darwin1[[0-7]]* | powerpc*-*-darwin*) > host_makefile_frag="config/mh-darwin" > ;; > powerpc-*-aix*) > @@ -1283,9 +1372,12 @@ if test "${build}" != "${host}" ; then > AR_FOR_BUILD=${AR_FOR_BUILD-ar} > AS_FOR_BUILD=${AS_FOR_BUILD-as} > CC_FOR_BUILD=${CC_FOR_BUILD-gcc} > + CPP_FOR_BUILD="${CPP_FOR_BUILD-\$(CC_FOR_BUILD) -E}" > CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} > + DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil} > GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} > GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} > + GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc} > DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool} > LD_FOR_BUILD=${LD_FOR_BUILD-ld} > NM_FOR_BUILD=${NM_FOR_BUILD-nm} > @@ -1297,8 +1389,10 @@ else > AS_FOR_BUILD="\$(AS)" > CC_FOR_BUILD="\$(CC)" > CXX_FOR_BUILD="\$(CXX)" > + DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)" > GFORTRAN_FOR_BUILD="\$(GFORTRAN)" > GOC_FOR_BUILD="\$(GOC)" > + GDC_FOR_BUILD="\$(GDC)" > DLLTOOL_FOR_BUILD="\$(DLLTOOL)" > LD_FOR_BUILD="\$(LD)" > NM_FOR_BUILD="\$(NM)" > @@ -1350,6 +1444,7 @@ int main() {}])], > fi > > ACX_PROG_GNAT > +ACX_PROG_GDC > ACX_PROG_CMP_IGNORE_INITIAL > > AC_ARG_ENABLE([bootstrap], > @@ -1395,10 +1490,17 @@ case "$have_compiler:$host:$target:$enable_bootstrap" in > ;; > esac > > -# When bootstrapping with GCC, build stage 1 in C++98 mode to ensure that a > -# C++98 compiler can still start the bootstrap. > +# When bootstrapping with GCC, build stage 1 in C++11 mode to ensure that a > +# C++11 compiler can still start the bootstrap. Otherwise, if building GCC, > +# require C++11 (or higher). > if test "$enable_bootstrap:$GXX" = "yes:yes"; then > - CXX="$CXX -std=gnu++98" > + CXX="$CXX -std=c++11" > +elif test "$have_compiler" = yes; then > + AX_CXX_COMPILE_STDCXX(11) > + > + if test "${build}" != "${host}"; then > + AX_CXX_COMPILE_STDCXX(11, [], [], [_FOR_BUILD]) > + fi > fi > > AC_ARG_ENABLE([pgo-build], > @@ -1504,11 +1606,6 @@ fi > > # Specify a location for mpfr > # check for this first so it ends up on the link line before gmp. > -AC_ARG_WITH(mpfr-dir, > -[AS_HELP_STRING([--with-mpfr-dir=PATH], [this option has been REMOVED])], > -[AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed. > -Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH])]) > - > AC_ARG_WITH(mpfr, > [AS_HELP_STRING([--with-mpfr=PATH], > [specify prefix directory for installed MPFR package. > @@ -1548,11 +1645,6 @@ Building GCC with MPFR in the source tree is only handled for MPFR 3.1.0+.]) > fi > > # Specify a location for gmp > -AC_ARG_WITH(gmp-dir, > -[AS_HELP_STRING([--with-gmp-dir=PATH], [this option has been REMOVED])], > -[AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed. > -Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH])]) > - > AC_ARG_WITH(gmp, > [AS_HELP_STRING([--with-gmp=PATH], > [specify prefix directory for the installed GMP package. > @@ -1616,12 +1708,12 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then > AC_MSG_CHECKING([for the correct version of mpfr.h]) > AC_TRY_COMPILE([#include > #include ],[ > - #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,0) > + #if MPFR_VERSION < MPFR_VERSION_NUM(3,1,0) > choke me > #endif > ], [AC_TRY_COMPILE([#include > #include ],[ > - #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2) > + #if MPFR_VERSION < MPFR_VERSION_NUM(3,1,6) > choke me > #endif > ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])], > @@ -1656,9 +1748,9 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then > int t; > mpfr_init (n); > mpfr_init (x); > - mpfr_atan2 (n, n, x, GMP_RNDN); > - mpfr_erfc (n, x, GMP_RNDN); > - mpfr_subnormalize (x, t, GMP_RNDN); > + mpfr_atan2 (n, n, x, MPFR_RNDN); > + mpfr_erfc (n, x, MPFR_RNDN); > + mpfr_subnormalize (x, t, MPFR_RNDN); > mpfr_clear(n); > mpfr_clear(x); > mpc_init2 (c, 53); > @@ -1676,11 +1768,11 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then > # The library versions listed in the error message below should match > # the HARD-minimums enforced above. > if test x$have_gmp != xyes; then > - AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. > + AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+. > Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify > their locations. Source code for these libraries can be found at > their respective hosting sites as well as at > -ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also > +https://gcc.gnu.org/pub/gcc/infrastructure/. See also > http://gcc.gnu.org/install/prerequisites.html for additional info. If > you obtained GMP, MPFR and/or MPC from a vendor distribution package, > make sure that you have installed both the libraries and the header > @@ -1855,7 +1947,20 @@ AC_SUBST(extra_linker_plugin_flags) > AC_ARG_ENABLE(host-shared, > [AS_HELP_STRING([--enable-host-shared], > [build host code as shared libraries])], > -[host_shared=$enableval], [host_shared=no]) > +[host_shared=$enableval > + case $host in > + x86_64-*-darwin* | aarch64-*-darwin*) > + if test x$host_shared != xyes ; then > + # PIC is the default, and actually cannot be switched off. > + echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2 > + host_shared=yes > + fi ;; > + *) ;; > + esac], > +[case $host in > + x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;; > + *) host_shared=no ;; > + esac]) > AC_SUBST(host_shared) > > # By default, C and C++ are the only stage 1 languages. > @@ -2070,7 +2175,28 @@ if test -d ${srcdir}/gcc; then > ;; > esac > > + # Disable D if no preexisting GDC is available. > + case ${add_this_lang}:${language}:${have_gdc} in > + yes:d:no) > + # Specifically requested language; tell them. > + AC_MSG_ERROR([GDC is required to build $language]) > + ;; > + all:d:no) > + AC_MSG_WARN([GDC is required to build $language]) > + add_this_lang=unsupported > + ;; > + *:d:no) > + # Silently disable. > + add_this_lang=unsupported > + ;; > + esac > + > # Disable jit if -enable-host-shared not specified > + # but not if building for Mingw. All code in Windows > + # is position independent code (PIC). > + case $target in > + *mingw*) ;; > + *) > case ${add_this_lang}:${language}:${host_shared} in > yes:jit:no) > # PR jit/64780: explicitly specify --enable-host-shared > @@ -2094,6 +2220,8 @@ directories, to avoid imposing the performance cost of > add_this_lang=unsupported > ;; > esac > + ;; > + esac > > # Disable a language that is unsupported by the target. > case "${add_this_lang}: $unsupported_languages " in > @@ -2130,7 +2258,7 @@ directories, to avoid imposing the performance cost of > *) stage1_languages="${stage1_languages}${language}," ;; > esac > # We need to bootstrap any supporting libraries. > - bootstrap_target_libs="${bootstrap_target_libs}${target_libs}," > + bootstrap_target_libs=`echo "${bootstrap_target_libs}${target_libs}," | sed "s/ /,/g"` > ;; > esac > ;; > @@ -2804,7 +2932,7 @@ fi > # or bootstrap-ubsan, bootstrap it. > if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then > case "$BUILD_CONFIG" in > - *bootstrap-asan* | *bootstrap-ubsan* ) > + *bootstrap-hwasan* | *bootstrap-asan* | *bootstrap-ubsan* ) > bootstrap_target_libs=${bootstrap_target_libs}target-libsanitizer, > bootstrap_fixincludes=yes > ;; > @@ -2817,6 +2945,16 @@ if echo " ${target_configdirs} " | grep " libvtv " > /dev/null 2>&1 && > bootstrap_target_libs=${bootstrap_target_libs}target-libvtv, > fi > > +# If we are building libatomic and the list of enabled languages includes the > +# D frontend, bootstrap it. > +if echo " ${target_configdirs} " | grep " libatomic " > /dev/null 2>&1; then > + case ,${enable_languages}, in > + *,d,*) > + bootstrap_target_libs=${bootstrap_target_libs}target-libatomic, > + ;; > + esac > +fi > + > # Determine whether gdb needs tk/tcl or not. > # Use 'maybe' since enable_gdbtk might be true even if tk isn't available > # and in that case we want gdb to be built without tk. Ugh! > @@ -3354,6 +3492,17 @@ case "${target}" in > mep*) > FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary" > ;; > + # The VxWorks support for shared libraries is getting in > + # incrementally. Make sure it doesn't get activated implicitly: > + *vxworks*) > + if test "${enable_shared-unset}" = unset ; then > + enable_shared=no > + # So the build of libraries knows ... > + target_configargs="${target_configargs} --disable-shared" > + # So gcc knows ... > + host_configargs="${host_configargs} --disable-shared" > + fi > + ;; > esac > > # Makefile fragments. > @@ -3396,12 +3545,15 @@ AC_SUBST(AR_FOR_BUILD) > AC_SUBST(AS_FOR_BUILD) > AC_SUBST(CC_FOR_BUILD) > AC_SUBST(CFLAGS_FOR_BUILD) > +AC_SUBST(CPP_FOR_BUILD) > AC_SUBST(CPPFLAGS_FOR_BUILD) > AC_SUBST(CXXFLAGS_FOR_BUILD) > AC_SUBST(CXX_FOR_BUILD) > AC_SUBST(DLLTOOL_FOR_BUILD) > +AC_SUBST(DSYMUTIL_FOR_BUILD) > AC_SUBST(GFORTRAN_FOR_BUILD) > AC_SUBST(GOC_FOR_BUILD) > +AC_SUBST(GDC_FOR_BUILD) > AC_SUBST(LDFLAGS_FOR_BUILD) > AC_SUBST(LD_FOR_BUILD) > AC_SUBST(NM_FOR_BUILD) > @@ -3478,6 +3630,7 @@ esac > NCN_STRICT_CHECK_TOOLS(AR, ar) > NCN_STRICT_CHECK_TOOLS(AS, as) > NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool) > +NCN_STRICT_CHECK_TOOLS(DSYMUTIL, dsymutil) > NCN_STRICT_CHECK_TOOLS(LD, ld) > NCN_STRICT_CHECK_TOOLS(LIPO, lipo) > NCN_STRICT_CHECK_TOOLS(NM, nm) > @@ -3487,12 +3640,14 @@ NCN_STRICT_CHECK_TOOLS(WINDRES, windres) > NCN_STRICT_CHECK_TOOLS(WINDMC, windmc) > NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy) > NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump) > +NCN_STRICT_CHECK_TOOLS(OTOOL, otool) > NCN_STRICT_CHECK_TOOLS(READELF, readelf) > AC_SUBST(CC) > AC_SUBST(CXX) > AC_SUBST(CFLAGS) > AC_SUBST(CXXFLAGS) > -AC_SUBST(PKG_CONFIG_PATH) > +AC_SUBST(GDC) > +AC_SUBST(GDCFLAGS) > > GCC_PLUGIN_OPTION(PLUGIN_OPTION) > AR_PLUGIN_OPTION= > @@ -3504,10 +3659,6 @@ if test -n "$PLUGIN_OPTION"; then > if $RANLIB --help 2>&1 | grep -q "\--plugin"; then > RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" > fi > -else > - if test "$enable_pgo_build" != "no"; then > - AC_MSG_ERROR([AR with --plugin and rc is required for LTO build]) > - fi > fi > AC_SUBST(AR_PLUGIN_OPTION) > AC_SUBST(RANLIB_PLUGIN_OPTION) > @@ -3530,15 +3681,18 @@ NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx) > NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET}) > NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran) > NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo) > +NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TARGET, gdc) > > ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar) > ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as) > ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool) > +ACX_CHECK_INSTALLED_TARGET_TOOL(DSYMUTIL_FOR_TARGET, dsymutil) > ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld) > ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo) > ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm) > ACX_CHECK_INSTALLED_TARGET_TOOL(OBJCOPY_FOR_TARGET, objcopy) > ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump) > +ACX_CHECK_INSTALLED_TARGET_TOOL(OTOOL_FOR_TARGET, otool) > ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib) > ACX_CHECK_INSTALLED_TARGET_TOOL(READELF_FOR_TARGET, readelf) > ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip) > @@ -3558,16 +3712,20 @@ GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX, > [gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs], > c++) > GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool]) > +GCC_TARGET_TOOL(dsymutil, DSYMUTIL_FOR_TARGET, DSYMUTIL) > GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/]) > GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN, > [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran) > GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC, > [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go) > +GCC_TARGET_TOOL(gdc, GDC_FOR_TARGET, GDC, > + [gcc/gdc -B$$r/$(HOST_SUBDIR)/gcc/], d) > GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new]) > GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO) > GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new]) > GCC_TARGET_TOOL(objcopy, OBJCOPY_FOR_TARGET, OBJCOPY, [binutils/objcopy]) > GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump]) > +GCC_TARGET_TOOL(otool, OTOOL_FOR_TARGET, OTOOL) > GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib]) > GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF, [binutils/readelf]) > GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new]) > @@ -3690,8 +3848,8 @@ AC_SUBST(stage2_werror_flag) > compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*" > case "$target" in > hppa*64*-*-hpux*) ;; > - hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/* | gcc/function-tests.o" ;; > - powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;; > + hppa*-*-hpux*) compare_exclusions="$compare_exclusions | */libgcc/lib2funcs* | gcc/function-tests.o" ;; > + powerpc*-ibm-aix*) compare_exclusions="$compare_exclusions | *libgomp*\$(objext)" ;; > esac > AC_SUBST(compare_exclusions) >