public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
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)
>  

  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).