From: Tsukasa OI <research_trasio@irq.a4lg.com>
To: Alan Modra <amodra@gmail.com>, Jan Beulich <jbeulich@suse.com>
Cc: "binutils@sourceware.org" <binutils@sourceware.org>
Subject: Re: @CPP_FOR_BUILD@ problem since binutils-2.38
Date: Mon, 10 Oct 2022 15:50:31 +0900 [thread overview]
Message-ID: <3e8b00a1-6101-0b75-712b-f5b0ea29a24a@irq.a4lg.com> (raw)
In-Reply-To: <Y0Nquqh+i4FLGoJZ@squeak.grove.modra.org>
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 <http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00572.html>.
> 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 <gmp.h>
> #include <mpfr.h>],[
> - #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 <gmp.h>
> #include <mpfr.h>],[
> - #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)
>
next prev parent reply other threads:[~2022-10-10 6:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-07 4:10 Andrew Goth
2022-10-07 8:42 ` Jan Beulich
2022-10-10 0:43 ` Alan Modra
2022-10-10 6:50 ` Tsukasa OI [this message]
2022-10-11 13:03 ` Alan Modra
2022-10-11 18:21 ` Tom Tromey
2022-10-11 23:40 ` Alan Modra
2022-10-13 4:32 ` Tom Tromey
2022-10-10 10:06 ` Nick Clifton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3e8b00a1-6101-0b75-712b-f5b0ea29a24a@irq.a4lg.com \
--to=research_trasio@irq.a4lg.com \
--cc=amodra@gmail.com \
--cc=binutils@sourceware.org \
--cc=jbeulich@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).