Skip to content
Snippets Groups Projects
  1. Aug 07, 2023
    • John Ericson's avatar
      Deprecate a.out support for NetBSD targets. · 9fc0ae60
      John Ericson authored
      As discussed previously, a.out support is now quite deprecated, and in
      some cases removed, in both Binutils itself and NetBSD, so this legacy
      default makes little sense. `netbsdelf*` and `netbsdaout*` still work
      allowing the user to be explicit about there choice. Additionally, the
      configure script warns about the change as Nick Clifton requested.
      
      One possible concern was the status of NetBSD on NS32K, where only a.out
      was supported. But per [1] NetBSD has removed support, and if it were to
      come back, it would be with ELF. The binutils implementation is
      therefore marked obsolete, per the instructions in the last message.
      
      With that patch and this one applied, I have confirmed the following:
      
      --target=i686-unknown-netbsd
      --target=i686-unknown-netbsdelf
        builds completely
      
      --target=i686-unknown-netbsdaout
        properly fails because target is deprecated.
      
      --target=vax-unknown-netbsdaout builds completely except for gas, where
      the target is deprecated.
      
      [1]: https://mail-index.netbsd.org/tech-toolchain/2021/07/19/msg004025.html
      
      config/ChangeLog:
      
      	* picflag.m4: Simplify SHmedia NetBSD match by presuming ELF.
      
      gcc/ChangeLog:
      
      	* configure: Regenerate.
      
      libada/ChangeLog:
      
      	* configure: Regenerate.
      
      libgcc/ChangeLog:
      
      	* configure: Regenerate.
      
      libiberty/ChangeLog:
      
      	* configure: Regenerate.
      Unverified
      9fc0ae60
    • Alan Modra's avatar
      PR27116, Spelling errors found by Debian style checker · 120397f3
      Alan Modra authored
      config/ChangeLog:
      
      	* override.m4: Correct comment grammar.
      Unverified
      120397f3
    • Alan Modra's avatar
      egrep in binutils · 1d6c6dc9
      Alan Modra authored
      Apparently some distros have a nagging egrep that helpfully tells you
      egrep is deprecated and to use "grep -E".  The nag message causes a ld
      testsuite failure.  What's more the advice isn't that good.  The "-E"
      flag may not be available with older versions of grep.
      
      This patch fixes bare invocation of egrep within binutils, replacing
      it with the autoconf $EGREP or with grep.
      
      config/ChangeLog:
      
      	* lib-ld.m4 (AC_LIB_PROG_LD_GNU): Require AC_PROG_EGREP and
      	invoke $EGREP.
      	(AC_LIB_PROG_LD): Likewise.
      
      gcc/ChangeLog:
      
      	* configure: Regenerate.
      
      intl/ChangeLog:
      
      	* configure: Regenerate.
      
      libcpp/ChangeLog:
      
      	* configure: Regenerate.
      
      libgcc/ChangeLog:
      
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	* configure: Regenerate.
      Unverified
      1d6c6dc9
    • Christophe Lyon's avatar
      configure: require libzstd >= 1.4.0 · e61c0e3a
      Christophe Lyon authored
      gas uses ZSTD_compressStream2 which is only available with libzstd >=
      1.4.0, leading to build errors when an older version is installed.
      
      This patch updates the check libzstd presence to check its version is
      >= 1.4.0. However, since gas seems to be the only component requiring
      such a recent version this may imply that we disable ZSTD support for
      all components although some would still benefit from an older
      version.
      
      I ran 'autoreconf -f' in all directories containing a configure.ac
      file, using vanilla autoconf-2.69 and automake-1.15.1. I noticed
      several errors from autoheader in readline, as well as warnings in
      intl, but they are unrelated to this patch.
      
      This should fix some of the buildbots.
      
      OK for trunk?
      
      Thanks,
      
      Christophe
      
      config/ChangeLog:
      
      	* zstd.m4: Add minimum version requirement of 1.4.0.
      Unverified
      e61c0e3a
    • Fangrui Song's avatar
      binutils, gdb: support zstd compressed debug sections · 407a2c9a
      Fangrui Song authored
      PR29397 PR29563: Add new configure option --with-zstd which defaults to
      auto.  If pkgconfig/libzstd.pc is found, define HAVE_ZSTD and support
      zstd compressed debug sections for most tools.
      
      * bfd: for addr2line, objdump --dwarf, gdb, etc
      * gas: support --compress-debug-sections=zstd
      * ld: support ELFCOMPRESS_ZSTD input and --compress-debug-sections=zstd
      * objcopy: support ELFCOMPRESS_ZSTD input for
        --decompress-debug-sections and --compress-debug-sections=zstd
      * gdb: support ELFCOMPRESS_ZSTD input.  The bfd change references zstd
        symbols, so gdb has to link against -lzstd in this patch.
      
      If zstd is not supported, ELFCOMPRESS_ZSTD input triggers an error.  We
      can avoid HAVE_ZSTD if binutils-gdb imports zstd/ like zlib/, but this
      is too heavyweight, so don't do it for now.
      
      ```
      % ld/ld-new a.o
      ld/ld-new: a.o: section .debug_abbrev is compressed with zstd, but BFD is not built with zstd support
      ...
      
      % ld/ld-new a.o --compress-debug-sections=zstd
      ld/ld-new: --compress-debug-sections=zstd: ld is not built with zstd support
      
      % binutils/objcopy --compress-debug-sections=zstd a.o b.o
      binutils/objcopy: --compress-debug-sections=zstd: binutils is not built with zstd support
      
      % binutils/objcopy b.o --decompress-debug-sections
      binutils/objcopy: zstd.o: section .debug_abbrev is compressed with zstd, but BFD is not built with zstd support
      ...
      ```
      
      config/ChangeLog:
      
      	* zstd.m4: New file.
      
      ChangeLog:
      	* configure: Regenerate.
      	* configure.ac: Add --with-zstd.
      Unverified
      407a2c9a
    • H.J. Lu's avatar
      GCC: Check if AR works with --plugin and rc · 9c7797a8
      H.J. Lu authored
      AR from older binutils doesn't work with --plugin and rc:
      
      [hjl@gnu-cfl-2 bin]$ touch foo.c
      [hjl@gnu-cfl-2 bin]$ ar --plugin /usr/libexec/gcc/x86_64-redhat-linux/10/liblto_plugin.so rc libfoo.a foo.c
      [hjl@gnu-cfl-2 bin]$ ./ar --plugin /usr/libexec/gcc/x86_64-redhat-linux/10/liblto_plugin.so rc libfoo.a foo.c
      ./ar: no operation specified
      [hjl@gnu-cfl-2 bin]$ ./ar --version
      GNU ar (Linux/GNU Binutils) 2.29.51.0.1.20180112
      Copyright (C) 2018 Free Software Foundation, Inc.
      This program is free software; you may redistribute it under the terms of
      the GNU General Public License version 3 or (at your option) any later version.
      This program has absolutely no warranty.
      [hjl@gnu-cfl-2 bin]$
      
      Check if AR works with --plugin and rc before passing --plugin to AR and
      RANLIB.
      
      ChangeLog:
      
      	* configure: Regenerated.
      	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Check if AR works with
      	--plugin and rc before enabling --plugin.
      
      config/ChangeLog:
      
      	* gcc-plugin.m4 (GCC_PLUGIN_OPTION): Check if AR works with
      	--plugin and rc before enabling --plugin.
      
      gcc/ChangeLog:
      
      	* configure: Regenerate.
      
      libatomic/ChangeLog:
      
      	* configure: Regenerate.
      
      libbacktrace/ChangeLog:
      
      	* configure: Regenerate.
      
      libcc1/ChangeLog:
      
      	* configure: Regenerate.
      
      libffi/ChangeLog:
      
      	* configure: Regenerate.
      
      libgfortran/ChangeLog:
      
      	* configure: Regenerate.
      
      libgm2/ChangeLog:
      
      	* configure: Regenerate.
      
      libgomp/ChangeLog:
      
      	* configure: Regenerate.
      
      libiberty/ChangeLog:
      
      	* configure: Regenerate.
      
      libitm/ChangeLog:
      
      	* configure: Regenerate.
      
      libobjc/ChangeLog:
      
      	* configure: Regenerate.
      
      libphobos/ChangeLog:
      
      	* configure: Regenerate.
      
      libquadmath/ChangeLog:
      
      	* configure: Regenerate.
      
      libsanitizer/ChangeLog:
      
      	* configure: Regenerate.
      
      libssp/ChangeLog:
      
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	* configure: Regenerate.
      
      libvtv/ChangeLog:
      
      	* configure: Regenerate.
      
      lto-plugin/ChangeLog:
      
      	* configure: Regenerate.
      
      zlib/ChangeLog:
      
      	* configure: Regenerate.
      Unverified
      9c7797a8
    • H.J. Lu's avatar
      Sync with binutils: GCC: Pass --plugin to AR and RANLIB · 126f707e
      H.J. Lu authored
      Sync with binutils for building binutils with LTO:
      
      50ad1254d50 GCC: Pass --plugin to AR and RANLIB
      
      Detect GCC LTO plugin.  Pass --plugin to AR and RANLIB to support LTO
      build.
      
      ChangeLog:
      
      	* Makefile.tpl (AR): Add @AR_PLUGIN_OPTION@
      	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
      	* configure.ac: Include config/gcc-plugin.m4.
      	AC_SUBST AR_PLUGIN_OPTION and RANLIB_PLUGIN_OPTION.
      	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Pass --plugin to AR and
      	RANLIB if possible.
      	* Makefile.in: Regenerated.
      	* configure: Likewise.
      
      config/ChangeLog:
      
      	* gcc-plugin.m4 (GCC_PLUGIN_OPTION): New.
      
      libiberty/ChangeLog:
      
      	* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
      	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
      	(configure_deps): Depend on ../config/gcc-plugin.m4.
      	* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
      	RANLIB_PLUGIN_OPTION.
      	* aclocal.m4: Regenerated.
      	* configure: Likewise.
      
      zlib/ChangeLog:
      
      	* configure: Regenerated.
      
      gcc/ChangeLog:
      
      	* configure: Regenerate.
      
      libatomic/ChangeLog:
      
      	* configure: Regenerate.
      
      libbacktrace/ChangeLog:
      
      	* configure: Regenerate.
      
      libcc1/ChangeLog:
      
      	* configure: Regenerate.
      
      libffi/ChangeLog:
      
      	* configure: Regenerate.
      
      libgfortran/ChangeLog:
      
      	* configure: Regenerate.
      
      libgm2/ChangeLog:
      
      	* configure: Regenerate.
      
      libgomp/ChangeLog:
      
      	* configure: Regenerate.
      
      libitm/ChangeLog:
      
      	* configure: Regenerate.
      
      libobjc/ChangeLog:
      
      	* configure: Regenerate.
      
      libphobos/ChangeLog:
      
      	* configure: Regenerate.
      
      libquadmath/ChangeLog:
      
      	* configure: Regenerate.
      
      libsanitizer/ChangeLog:
      
      	* configure: Regenerate.
      
      libssp/ChangeLog:
      
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	* configure: Regenerate.
      
      libvtv/ChangeLog:
      
      	* configure: Regenerate.
      
      lto-plugin/ChangeLog:
      
      	* configure: Regenerate.
      Unverified
      126f707e
  2. Jul 22, 2023
  3. Jul 21, 2023
  4. Nov 15, 2022
  5. Nov 14, 2022
  6. Nov 10, 2022
  7. Nov 09, 2022
    • Martin Liska's avatar
      sphinx: support Sphinx in build system · 41a45cba
      Martin Liska authored
      config/ChangeLog:
      
      	* acx.m4: Do not wrap REPORT_BUGS_TO.
      
      ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Support Sphinx based documentation.
      
      gcc/ChangeLog:
      
      	* Makefile.in: Support Sphinx based documentation.
      	* configure: Regenerate.
      	* configure.ac: Support Sphinx based documentation.
      	* genhooks.cc (struct s_hook): Emit tm.rst.in file.
      
      gcc/cp/ChangeLog:
      
      	* Make-lang.in: Support Sphinx based documentation.
      
      gcc/d/ChangeLog:
      
      	* Make-lang.in: Support Sphinx based documentation.
      
      gcc/fortran/ChangeLog:
      
      	* Make-lang.in: Support Sphinx based documentation.
      
      gcc/go/ChangeLog:
      
      	* Make-lang.in: Support Sphinx based documentation.
      
      libgomp/ChangeLog:
      
      	* Makefile.in: Support Sphinx based documentation.
      
      libiberty/ChangeLog:
      
      	* Makefile.in: Support Sphinx based documentation.
      
      libitm/ChangeLog:
      
      	* Makefile.in: Support Sphinx based documentation.
      
      libquadmath/ChangeLog:
      
      	* Makefile.in: Support Sphinx based documentation.
      41a45cba
  8. Oct 20, 2022
  9. Oct 19, 2022
    • LIU Hao's avatar
      gcc: Add 'mcf' thread model support from mcfgthread · f036d759
      LIU Hao authored
      This patch adds the new thread model `mcf`, which implements mutexes
      and condition variables with the mcfgthread library.
      
      Source code for mcfgthread is available at <https://github.com/lhmouse/mcfgthread>.
      
      config/ChangeLog:
      	* gthr.m4 (GCC_AC_THREAD_HEADER): Add new case for `mcf` thread
      	model
      
      gcc/ChangeLog:
      	* config/i386/mingw-mcfgthread.h: New file
      	* config/i386/mingw32.h: Add builtin macro and default libraries
      	for mcfgthread when thread model is `mcf`
      	* config.gcc: Include 'i386/mingw-mcfgthread.h' when thread model
      	is `mcf`
      	* configure.ac: Recognize `mcf` as a valid thread model
      	* config.in: Regenerate
      	* configure: Regenerate
      
      libatomic/ChangeLog:
      	* configure.tgt: Add new case for `mcf` thread model
      
      libgcc/ChangeLog:
      	* config.host: Add new cases for `mcf` thread model
      	* config/i386/gthr-mcf.h: New file
      	* config/i386/t-mingw-mcfgthread: New file
      	* config/i386/t-slibgcc-cygming: Add mcfgthread for libgcc DLL
      	* configure: Regenerate
      
      libstdc++-v3/ChangeLog:
      	* libsupc++/atexit_thread.cc (__cxa_thread_atexit): Use
      	implementation from mcfgthread if available
      	* libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_release,
      	__cxa_guard_abort): Use implementations from mcfgthread if
      	available
      	* configure: Regenerate
      f036d759
  10. Sep 01, 2022
  11. Aug 31, 2022
    • Martin Liska's avatar
      32-bit PA-RISC with HP-UX: remove deprecated ports · dc832fb3
      Martin Liska authored
      ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Delete hpux9 and hpux10.
      
      config/ChangeLog:
      
      	* mh-pa-hpux10: Removed.
      
      contrib/ChangeLog:
      
      	* config-list.mk: Remove deprecated ports.
      
      contrib/header-tools/ChangeLog:
      
      	* README: Remove deprecated ports.
      	* reduce-headers: Likewise.
      
      gcc/ChangeLog:
      
      	* config.build: Remove deprecated ports.
      	* config.gcc: Likewise.
      	* config.host: Likewise.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      	* config/pa/pa-hpux10.h: Removed.
      	* config/pa/pa-hpux10.opt: Removed.
      	* config/pa/t-dce-thr: Removed.
      
      gnattools/ChangeLog:
      
      	* configure.ac: Remove deprecated ports.
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	* configure: Regenerate.
      	* crossconfig.m4: Remove deprecated ports.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp0x/lambda/lambda-conv.C: Remove useless test.
      	* gcc.c-torture/execute/ieee/hugeval.x: Likewise.
      	* gcc.dg/torture/pr47917.c: Likewise.
      	* lib/target-supports.exp: Likewise.
      
      libgcc/ChangeLog:
      
      	* config.host: Remove hppa.
      
      libitm/ChangeLog:
      
      	* configure: Regenerate.
      
      fixincludes/ChangeLog:
      
      	* configure: Regenerate.
      dc832fb3
  12. Aug 02, 2022
  13. Aug 01, 2022
    • Roger Sayle's avatar
      Update configure to check for a recent gnat Ada compiler. · 71f068a9
      Roger Sayle authored
      GCC fails to bootstrap when configured with --enable-languages=all on
      machines that have older versions of GNAT installed as the system Ada
      compiler.  In configure, it's not sufficient to check whether gnat is
      available, but whether a sufficiently recent version of GNAT is
      installed.  This patch tweaks config/acx.m4 so that conftest.adb also
      contains a reference to System.CRTL.int64 as required by the current
      version of gcc/ada/osint.adb.  This fixes the build when the system
      Ada is GNAT v4.8.5 (on Redhat 7) by disabling ada, but continues to
      work fine when the system Ada is GNAT v11.3.1.
      
      2022-08-01  Roger Sayle  <roger@nextmovesoftware.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      config/ChangeLog
      	* acx.m4 (AC_PROG_GNAT): Update conftest.adb to include
      	features required of the host gnat compiler.
      
      ChangeLog
      	* configure: Regenerate.
      71f068a9
  14. Jun 02, 2022
  15. Jun 01, 2022
    • David Seifert's avatar
      [PATCH] configure: use OBJDUMP determined by libtool [PR95648] · c4c3cd5c
      David Seifert authored
      $ac_cv_prog_OBJDUMP contains the --host OBJDUMP that
      libtool has inferred. Current config/gcc-plugin.m4 does
      not respect the user's choice for OBJDUMP.
      
      	PR plugins/95648
      config/
      
      	* gcc-plugin.m4: Use libtool's $ac_cv_prog_OBJDUMP.
      
      gcc/
      
      	* configure: Regenerate.
      
      libcc1/
      
      	* configure: Regenerate.
      c4c3cd5c
  16. May 21, 2022
  17. May 20, 2022
    • Christophe Lyon's avatar
      aarch64: Enable DFP (Decimal Floating-point) (BID format) · afd82c10
      Christophe Lyon authored
      This patch enables DFP support on aarch64, by updating config/dfp.m4
      and regenerating the involved configure scripts.
      We enable the BID format.
      
      2022-03-31  Christophe Lyon  <christophe.lyon@arm.com>
      
      	config/
      	* dfp.m4: Add aarch64 support.
      	gcc/
      	* configure: Regenerate.
      	libdecnumber/
      	* configure: Regenerate.
      	libgcc/
      	* configure: Regenerate.
      afd82c10
  18. May 04, 2022
  19. May 03, 2022
    • Christophe Lyon's avatar
      dfp.m4: Add missing license header · da6d834b
      Christophe Lyon authored
      It seems the license header was omitted when dfp.m4 was originally
      contributed in 2010 (commit 3c39bca6, r0-102573 or svn r163815.
      
      This copies the license from libdecnumber/configure.ac since dfp.m4
      was originally extracted from that file.
      
      2022-04-29  Christophe Lyon  <christophe.lyon@arm.com>
      
      	config/
      	* dfp.m4: Add license header.
      da6d834b
  20. Mar 30, 2022
  21. Mar 29, 2022
    • chenglulu's avatar
      LoongArch Port: Regenerate configure · c6c0594e
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      ChangeLog:
      
      	* configure.ac: Add LoongArch tuples.
      	* configure: Regenerate.
      
      config/ChangeLog:
      
      	* picflag.m4: Default add build option '-fpic' for LoongArch.
      c6c0594e
  22. Dec 22, 2021
  23. Dec 21, 2021
    • Iain Buclaw's avatar
      config: Add check whether D compiler works (PR103528) · 7c6ae994
      Iain Buclaw authored
      As well as checking for the existence of a GDC compiler, also validate
      that it has also been built with libphobos, otherwise warn or fail with
      the message that GDC is required to build d.
      
      config/ChangeLog:
      
      	PR d/103528
      	* acx.m4 (ACX_PROG_GDC): Add check whether D compiler works.
      
      ChangeLog:
      
      	* configure: Regenerate.
      7c6ae994
  24. Dec 17, 2021
  25. Dec 16, 2021
  26. Dec 15, 2021
    • H.J. Lu's avatar
      Sync with binutils: GCC: Pass --plugin to AR and RANLIB · bf8cdd35
      H.J. Lu authored
      Sync with binutils for building binutils with LTO:
      
      50ad1254d50 GCC: Pass --plugin to AR and RANLIB
      
      Detect GCC LTO plugin.  Pass --plugin to AR and RANLIB to support LTO
      build.
      
      ChangeLog:
      
      	* Makefile.tpl (AR): Add @AR_PLUGIN_OPTION@
      	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
      	* configure.ac: Include config/gcc-plugin.m4.
      	AC_SUBST AR_PLUGIN_OPTION and RANLIB_PLUGIN_OPTION.
      	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Pass --plugin to AR and
      	RANLIB if possible.
      	* Makefile.in: Regenerated.
      	* configure: Likewise.
      
      config/
      
      	* gcc-plugin.m4 (GCC_PLUGIN_OPTION): New.
      
      libiberty/
      
      	* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
      	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
      	(configure_deps): Depend on ../config/gcc-plugin.m4.
      	* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
      	RANLIB_PLUGIN_OPTION.
      	* aclocal.m4: Regenerated.
      	* configure: Likewise.
      
      zlib/
      
      	* configure: Regenerated.
      bf8cdd35
    • Iain Sandoe's avatar
      configure: Account CXXFLAGS in gcc-plugin.m4. · 3e714cc5
      Iain Sandoe authored
      
      We now use a C++ compiler so that we need to process
      CXXFLAGS as well as CFLAGS in the gcc-plugin config
      fragment.
      
      Signed-off-by: default avatarIain Sandoe <iain@sandoe.co.uk>
      
      config/ChangeLog:
      
      	* gcc-plugin.m4: Save and process CXXFLAGS.
      
      gcc/ChangeLog:
      
      	* configure: Regenerate.
      
      libcc1/ChangeLog:
      
      	* configure: Regenerate.
      3e714cc5
  27. Dec 01, 2021
  28. Nov 30, 2021
    • Iain Buclaw's avatar
      d: Import dmd b8384668f, druntime e6caaab9, phobos 5ab9ad256 (v2.098.0-beta.1) · 5fee5ec3
      Iain Buclaw authored
      The D front-end is now itself written in D, in order to build GDC, you
      will need a working GDC compiler (GCC version 9.1 or later).
      
      GCC changes:
      
          - Add support for bootstrapping the D front-end.
      
      These add the required components in order to have a D front-end written
      in D itself.  Because the compiler front-end only depends on the core
      runtime modules, only libdruntime is built for the bootstrap stages.
      
      D front-end changes:
      
          - Import dmd v2.098.0-beta.1.
      
      Druntime changes:
      
          - Import druntime v2.098.0-beta.1.
      
      Phobos changes:
      
          - Import phobos v2.098.0-beta.1.
      
      The jump from v2.076.1 to v2.098.0 covers nearly 4 years worth of
      development on the D programming language and run-time libraries.
      
      ChangeLog:
      
      	* Makefile.def: Add bootstrap to libbacktrace, libphobos, zlib, and
      	libatomic.
      	* Makefile.in: Regenerate.
      	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Fix command for GDC.
      	(STAGE1_CONFIGURE_FLAGS): Add --with-libphobos-druntime-only if
      	target-libphobos-bootstrap.
      	(STAGE2_CONFIGURE_FLAGS): Likewise.
      	* configure: Regenerate.
      	* configure.ac: Add support for bootstrapping D front-end.
      
      config/ChangeLog:
      
      	* acx.m4 (ACX_PROG_GDC): New m4 function.
      
      gcc/ChangeLog:
      
      	* Makefile.in (GDC): New variable.
      	(GDCFLAGS): New variable.
      	* configure: Regenerate.
      	* configure.ac: Add call to ACX_PROG_GDC.  Substitute GDCFLAGS.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd b8384668f.
      	* Make-lang.in (d-warn): Use strict warnings.
      	(DMD_WARN_CXXFLAGS): Remove.
      	(DMD_COMPILE): Remove.
      	(CHECKING_DFLAGS): Define.
      	(WARN_DFLAGS): Define.
      	(ALL_DFLAGS): Define.
      	(DCOMPILE.base): Define.
      	(DCOMPILE): Define.
      	(DPOSTCOMPILE): Define.
      	(DLINKER): Define.
      	(DLLINKER): Define.
      	(D_FRONTEND_OBJS): Add new dmd front-end objects.
      	(D_GENERATED_SRCS): Remove.
      	(D_GENERATED_OBJS): Remove.
      	(D_ALL_OBJS): Remove D_GENERATED_OBJS.
      	(d21$(exeext)): Build using DLLINKER and -static-libphobos.
      	(d.tags): Remove dmd/*.c and dmd/root/*.c.
      	(d.mostlyclean): Remove D_GENERATED_SRCS, d/idgen$(build_exeext),
      	d/impcnvgen$(build_exeext).
      	(D_INCLUDES): Include $(srcdir)/d/dmd/res.
      	(CFLAGS-d/id.o): Remove.
      	(CFLAGS-d/impcnvtab.o): Remove.
      	(d/%.o): Build using DCOMPILE and DPOSTCOMPILE.  Update dependencies
      	from d/dmd/%.c to d/dmd/%.d.
      	(d/idgen$(build_exeext)): Remove.
      	(d/impcnvgen$(build_exeext)): Remove.
      	(d/id.c): Remove.
      	(d/id.h): Remove.
      	(d/impcnvtab.c): Remove.
      	(d/%.dmdgen.o): Remove.
      	(D_SYSTEM_H): Remove.
      	(d/idgen.dmdgen.o): Remove.
      	(d/impcnvgen.dmdgen.o): Remove.
      	* config-lang.in (boot_language): New variable.
      	* d-attribs.cc: Include dmd/expression.h.
      	* d-builtins.cc: Include d-frontend.h.
      	(build_frontend_type): Update for new front-end interface.
      	(d_eval_constant_expression): Likewise.
      	(d_build_builtins_module): Likewise.
      	(maybe_set_builtin_1): Likewise.
      	(d_build_d_type_nodes): Likewise.
      	* d-codegen.cc (d_decl_context): Likewise.
      	(declaration_reference_p): Likewise.
      	(declaration_type): Likewise.
      	(parameter_reference_p): Likewise.
      	(parameter_type): Likewise.
      	(get_array_length): Likewise.
      	(build_delegate_cst): Likewise.
      	(build_typeof_null_value): Likewise.
      	(identity_compare_p): Likewise.
      	(lower_struct_comparison): Likewise.
      	(build_filename_from_loc): Likewise.
      	(build_assert_call): Remove LIBCALL_SWITCH_ERROR.
      	(build_bounds_index_condition): Call LIBCALL_ARRAYBOUNDS_INDEXP on
      	bounds error.
      	(build_bounds_slice_condition): Call LIBCALL_ARRAYBOUNDS_SLICEP on
      	bounds error.
      	(array_bounds_check): Update for new front-end interface.
      	(checkaction_trap_p): Handle CHECKACTION_context.
      	(get_function_type): Update for new front-end interface.
      	(d_build_call): Likewise.
      	* d-compiler.cc: Remove include of dmd/scope.h.
      	(Compiler::genCmain): Remove.
      	(Compiler::paintAsType): Update for new front-end interface.
      	(Compiler::onParseModule): Likewise.
      	* d-convert.cc (convert_expr): Remove call to LIBCALL_ARRAYCAST.
      	(convert_for_rvalue): Update for new front-end interface.
      	(convert_for_assignment): Likewise.
      	(convert_for_condition): Likewise.
      	(d_array_convert): Likewise.
      	* d-diagnostic.cc (error): Remove.
      	(errorSupplemental): Remove.
      	(warning): Remove.
      	(warningSupplemental): Remove.
      	(deprecation): Remove.
      	(deprecationSupplemental): Remove.
      	(message): Remove.
      	(vtip): New.
      	* d-frontend.cc (global): Remove.
      	(Global::_init): Remove.
      	(Global::startGagging): Remove.
      	(Global::endGagging): Remove.
      	(Global::increaseErrorCount): Remove.
      	(Loc::Loc): Remove.
      	(Loc::toChars): Remove.
      	(Loc::equals): Remove.
      	(isBuiltin): Update for new front-end interface.
      	(eval_builtin): Likewise.
      	(getTypeInfoType): Likewise.
      	(inlineCopy): Remove.
      	* d-incpath.cc: Include d-frontend.h.
      	(add_globalpaths): Call d_gc_malloc to allocate Strings.
      	(add_filepaths): Likewise.
      	* d-lang.cc: Include dmd/id.h, dmd/root/file.h, d-frontend.h.  Remove
      	include of dmd/mars.h, id.h.
      	(entrypoint_module): Remove.
      	(entrypoint_root_module): Remove.
      	(deps_write_string): Update for new front-end interface.
      	(deps_write): Likewise.
      	(d_init_options): Call rt_init.  Remove setting global params that are
      	default initialized by the front-end.
      	(d_handle_option): Handle OPT_fcheckaction_, OPT_fdump_c___spec_,
      	OPT_fdump_c___spec_verbose, OPT_fextern_std_, OPT_fpreview,
      	OPT_revert, OPT_fsave_mixins_, and OPT_ftransition.
      	(d_post_options): Propagate dip1021 and dip1000 preview flags to
      	dip25, and flag_diagnostics_show_caret to printErrorContext.
      	(d_add_entrypoint_module): Remove.
      	(d_parse_file): Update for new front-end interface.
      	(d_type_promotes_to): Likewise.
      	(d_types_compatible_p): Likewise.
      	* d-longdouble.cc (CTFloat::zero): Remove.
      	(CTFloat::one): Remove.
      	(CTFloat::minusone): Remove.
      	(CTFloat::half): Remove.
      	* d-system.h (POSIX): Remove.
      	(realpath): Remove.
      	(isalpha): Remove.
      	(isalnum): Remove.
      	(isdigit): Remove.
      	(islower): Remove.
      	(isprint): Remove.
      	(isspace): Remove.
      	(isupper): Remove.
      	(isxdigit): Remove.
      	(tolower): Remove.
      	(_mkdir): Remove.
      	(INT32_MAX): Remove.
      	(INT32_MIN): Remove.
      	(INT64_MIN): Remove.
      	(UINT32_MAX): Remove.
      	(UINT64_MAX): Remove.
      	* d-target.cc: Include calls.h.
      	(target): Remove.
      	(define_float_constants): Remove initialization of snan.
      	(Target::_init): Update for new front-end interface.
      	(Target::isVectorTypeSupported): Likewise.
      	(Target::isVectorOpSupported): Remove cases for unordered operators.
      	(TargetCPP::typeMangle): Update for new front-end interface.
      	(TargetCPP::parameterType): Likewise.
      	(Target::systemLinkage): Likewise.
      	(Target::isReturnOnStack): Likewise.
      	(Target::isCalleeDestroyingArgs): Define.
      	(Target::preferPassByRef): Define.
      	* d-tree.h (d_add_entrypoint_module): Remove.
      	* decl.cc (gcc_attribute_p): Update for new front-end interface.
      	(apply_pragma_crt): Define.
      	(DeclVisitor::visit(PragmaDeclaration *)): Handle pragmas
      	crt_constructor and crt_destructor.
      	(DeclVisitor::visit(TemplateDeclaration *)): Update for new front-end
      	interface.
      	(DeclVisitor::visit): Likewise.
      	(DeclVisitor::finish_vtable): Likewise.
      	(get_symbol_decl): Error if template has more than one nesting
      	context.  Update for new front-end interface.
      	(make_thunk): Update for new front-end interface.
      	(get_vtable_decl): Likewise.
      	* expr.cc (ExprVisitor::visit): Likewise.
      	(build_return_dtor): Likewise.
      	* imports.cc (ImportVisitor::visit): Likewise.
      	* intrinsics.cc: Include dmd/expression.h.  Remove include of
      	dmd/mangle.h.
      	(maybe_set_intrinsic): Update for new front-end interface.
      	* intrinsics.def (INTRINSIC_ROL): Update intrinsic signature.
      	(INTRINSIC_ROR): Likewise.
      	(INTRINSIC_ROR_TIARG): Likewise.
      	(INTRINSIC_TOPREC): Likewise.
      	(INTRINSIC_TOPRECL): Likewise.
      	(INTRINSIC_TAN): Update intrinsic module and signature.
      	(INTRINSIC_ISNAN): Likewise.
      	(INTRINSIC_ISFINITE): Likewise.
      	(INTRINSIC_COPYSIGN): Define intrinsic.
      	(INTRINSIC_COPYSIGNI): Define intrinsic.
      	(INTRINSIC_EXP): Update intrinsic module.
      	(INTRINSIC_EXPM1): Likewise.
      	(INTRINSIC_EXP2): Likewise.
      	(INTRINSIC_LOG): Likewise.
      	(INTRINSIC_LOG2): Likewise.
      	(INTRINSIC_LOG10): Likewise.
      	(INTRINSIC_POW): Likewise.
      	(INTRINSIC_ROUND): Likewise.
      	(INTRINSIC_FLOORF): Likewise.
      	(INTRINSIC_FLOOR): Likewise.
      	(INTRINSIC_FLOORL): Likewise.
      	(INTRINSIC_CEILF): Likewise.
      	(INTRINSIC_CEIL): Likewise.
      	(INTRINSIC_CEILL): Likewise.
      	(INTRINSIC_TRUNC): Likewise.
      	(INTRINSIC_FMIN): Likewise.
      	(INTRINSIC_FMAX): Likewise.
      	(INTRINSIC_FMA): Likewise.
      	(INTRINSIC_VA_ARG): Update intrinsic signature.
      	(INTRINSIC_VASTART): Likewise.
      	* lang.opt (fcheck=): Add alternate aliases for contract switches.
      	(fcheckaction=): New option.
      	(check_action): New Enum and EnumValue entries.
      	(fdump-c++-spec-verbose): New option.
      	(fdump-c++-spec=): New option.
      	(fextern-std=): New option.
      	(extern_stdcpp): New Enum and EnumValue entries
      	(fpreview=): New options.
      	(frevert=): New options.
      	(fsave-mixins): New option.
      	(ftransition=): Update options.
      	* modules.cc (get_internal_fn): Replace Prot with Visibility.
      	(build_internal_fn): Likewise.
      	(build_dso_cdtor_fn): Likewise.
      	(build_module_tree): Remove check for __entrypoint module.
      	* runtime.def (P5): Define.
      	(ARRAYBOUNDS_SLICEP): Define.
      	(ARRAYBOUNDS_INDEXP): Define.
      	(NEWTHROW): Define.
      	(ADCMP2): Remove.
      	(ARRAYCAST): Remove.
      	(SWITCH_STRING): Remove.
      	(SWITCH_USTRING): Remove.
      	(SWITCH_DSTRING): Remove.
      	(SWITCH_ERROR): Remove.
      	* toir.cc (IRVisitor::visit): Update for new front-end interface.
      	(IRVisitor::check_previous_goto): Remove checks for case and default
      	statements.
      	(IRVisitor::visit(SwitchStatement *)): Remove handling of string
      	switch conditions.
      	* typeinfo.cc: Include d-frontend.h.
      	(get_typeinfo_kind): Update for new front-end interface.
      	(make_frontend_typeinfo): Likewise.
      	(TypeInfoVisitor::visit): Likewise.
      	(builtin_typeinfo_p): Likewise.
      	(get_typeinfo_decl): Likewise.
      	(build_typeinfo): Likewise.
      	* types.cc (valist_array_p): Likewise.
      	(make_array_type): Likewise.
      	(merge_aggregate_types): Likewise.
      	(TypeVisitor::visit(TypeBasic *)): Likewise.
      	(TypeVisitor::visit(TypeFunction *)): Likewise.
      	(TypeVisitor::visit(TypeStruct *)): Update comment.
      	* verstr.h: Removed.
      	* d-frontend.h: New file.
      
      gcc/po/ChangeLog:
      
      	* EXCLUDES: Remove d/dmd sources from list.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/Wcastresult2.d: Update test.
      	* gdc.dg/asm1.d: Likewise.
      	* gdc.dg/asm2.d: Likewise.
      	* gdc.dg/asm3.d: Likewise.
      	* gdc.dg/gdc282.d: Likewise.
      	* gdc.dg/imports/gdc170.d: Likewise.
      	* gdc.dg/intrinsics.d: Likewise.
      	* gdc.dg/pr101672.d: Likewise.
      	* gdc.dg/pr90650a.d: Likewise.
      	* gdc.dg/pr90650b.d: Likewise.
      	* gdc.dg/pr94777a.d: Likewise.
      	* gdc.dg/pr95250.d: Likewise.
      	* gdc.dg/pr96869.d: Likewise.
      	* gdc.dg/pr98277.d: Likewise.
      	* gdc.dg/pr98457.d: Likewise.
      	* gdc.dg/simd1.d: Likewise.
      	* gdc.dg/simd2a.d: Likewise.
      	* gdc.dg/simd2b.d: Likewise.
      	* gdc.dg/simd2c.d: Likewise.
      	* gdc.dg/simd2d.d: Likewise.
      	* gdc.dg/simd2e.d: Likewise.
      	* gdc.dg/simd2f.d: Likewise.
      	* gdc.dg/simd2g.d: Likewise.
      	* gdc.dg/simd2h.d: Likewise.
      	* gdc.dg/simd2i.d: Likewise.
      	* gdc.dg/simd2j.d: Likewise.
      	* gdc.dg/simd7951.d: Likewise.
      	* gdc.dg/torture/gdc309.d: Likewise.
      	* gdc.dg/torture/pr94424.d: Likewise.
      	* gdc.dg/torture/pr94777b.d: Likewise.
      	* lib/gdc-utils.exp (gdc-convert-args): Handle new compiler options.
      	(gdc-convert-test): Handle CXXFLAGS, EXTRA_OBJC_SOURCES, and ARG_SETS
      	test directives.
      	(gdc-do-test): Only import modules in the test run directory.
      	* gdc.dg/pr94777c.d: New test.
      	* gdc.dg/pr96156b.d: New test.
      	* gdc.dg/pr96157c.d: New test.
      	* gdc.dg/simd_ctfe.d: New test.
      	* gdc.dg/torture/simd17344.d: New test.
      	* gdc.dg/torture/simd20052.d: New test.
      	* gdc.dg/torture/simd6.d: New test.
      	* gdc.dg/torture/simd7.d: New test.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime e6caaab9.
      	* libdruntime/Makefile.am (D_EXTRA_FLAGS): Build libdruntime with
      	-fpreview=dip1000, -fpreview=fieldwise, and -fpreview=dtorfields.
      	(ALL_DRUNTIME_SOURCES): Add DRUNTIME_DSOURCES_STDCXX.
      	(DRUNTIME_DSOURCES): Update list of C binding modules.
      	(DRUNTIME_DSOURCES_STDCXX): Likewise.
      	(DRUNTIME_DSOURCES_LINUX): Likewise.
      	(DRUNTIME_DSOURCES_OPENBSD): Likewise.
      	(DRUNTIME_DISOURCES): Remove __entrypoint.di.
      	* libdruntime/Makefile.in: Regenerated.
      	* libdruntime/__entrypoint.di: Removed.
      	* libdruntime/gcc/deh.d (_d_isbaseof): Update signature.
      	(_d_createTrace): Likewise.
      	(__gdc_begin_catch): Remove reference to the exception.
      	(_d_throw): Increment reference count of thrown object before unwind.
      	(__gdc_personality): Chain exceptions with  Throwable.chainTogether.
      	* libdruntime/gcc/emutls.d: Update imports.
      	* libdruntime/gcc/sections/elf.d: Update imports.
      	(DSO.moduleGroup): Update signature.
      	* libdruntime/gcc/sections/macho.d: Update imports.
      	(DSO.moduleGroup): Update signature.
      	* libdruntime/gcc/sections/pecoff.d: Update imports.
      	(DSO.moduleGroup): Update signature.
      	* src/MERGE: Merge upstream phobos 5ab9ad256.
      	* src/Makefile.am (D_EXTRA_DFLAGS): Add -fpreview=dip1000 and
      	-fpreview=dtorfields flags.
      	(PHOBOS_DSOURCES): Update list of std modules.
      	* src/Makefile.in: Regenerate.
      	* testsuite/lib/libphobos.exp (libphobos-dg-test): Handle assembly
      	compile types.
      	(dg-test): Override.
      	(additional_prunes): Define.
      	(libphobos-dg-prune): Filter any additional_prunes set by tests.
      	* testsuite/libphobos.aa/test_aa.d: Update test.
      	* testsuite/libphobos.druntime/druntime.exp (version_flags): Add
      	-fversion=CoreUnittest.
      	* testsuite/libphobos.druntime_shared/druntime_shared.exp
      	(version_flags): Add -fversion=CoreUnittest -fversion=Shared.
      	* testsuite/libphobos.exceptions/unknown_gc.d: Update test.
      	* testsuite/libphobos.hash/test_hash.d: Update test.
      	* testsuite/libphobos.phobos/phobos.exp (version_flags): Add
      	-fversion=StdUnittest
      	* testsuite/libphobos.phobos_shared/phobos_shared.exp (version_flags):
      	Likewise.
      	* testsuite/libphobos.shared/host.c: Update test.
      	* testsuite/libphobos.shared/load.d: Update test.
      	* testsuite/libphobos.shared/load_13414.d: Update test.
      	* testsuite/libphobos.thread/fiber_guard_page.d: Update test.
      	* testsuite/libphobos.thread/tlsgc_sections.d: Update test.
      	* testsuite/testsuite_flags.in: Add -fpreview=dip1000 to --gdcflags.
      	* testsuite/libphobos.shared/link_mod_collision.d: Removed.
      	* testsuite/libphobos.shared/load_mod_collision.d: Removed.
      	* testsuite/libphobos.betterc/betterc.exp: New test.
      	* testsuite/libphobos.config/config.exp: New test.
      	* testsuite/libphobos.gc/gc.exp: New test.
      	* testsuite/libphobos.imports/imports.exp: New test.
      	* testsuite/libphobos.lifetime/lifetime.exp: New test.
      	* testsuite/libphobos.unittest/unittest.exp: New test.
      5fee5ec3
  29. Sep 20, 2021
  30. Sep 19, 2021
    • Andrew Pinski's avatar
      Fix PR bootstrap/102389: --with-build-config=bootstrap-lto is broken · 68aace44
      Andrew Pinski authored
      So the problem here is that now the lto-plugin requires NM that works
      with LTO to work so we need to pass down NM just like we do for ranlib
      and ar.
      
      OK? Bootstrapped and tested with --with-build-config=bootstrap-lto on aarch64-linux-gnu.
      Note you need to use binutils 2.35 or later too due to ttps://sourceware.org/PR25355
      (I will submit another patch to improve the installation instructions too).
      
      config/ChangeLog:
      
      	PR bootstrap/102389
      	* bootstrap-lto-lean.mk: Handle NM like RANLIB AND AR.
      	* bootstrap-lto.mk: Likewise.
      68aace44
  31. Aug 19, 2021
  32. Aug 18, 2021
    • Iain Sandoe's avatar
      configure: Allow host fragments to react to --enable-host-shared. · d39367fa
      Iain Sandoe authored
      
      This makes the host_shared value available to host makefile
      fragments.
      
      It uses this to adjust Darwin's mdynamic-no-pic in the case that
      shared host resources are required.
      
      Signed-off-by: default avatarIain Sandoe <iain@sandoe.co.uk>
      
      ChangeLog:
      
      	* Makefile.in: Regenerate.
      	* Makefile.tpl: Make the state of the configured host
      	shared flag available to makefile fragements.
      
      config/ChangeLog:
      
      	* mh-darwin: Require a non-shared host configuration to
      	enable  mdynamic-no-pic where that is supported.
      d39367fa
Loading