Skip to content
Snippets Groups Projects
  1. 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
  2. Aug 19, 2021
  3. 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
  4. Jul 10, 2021
  5. Jul 09, 2021
    • Iain Sandoe's avatar
      Darwin, config: Revise host config fragment. · 54258e22
      Iain Sandoe authored
      
      There were two uses for the Darwin host config fragment:
      
      The first is to arrange for targets that support mdynamic-no-pic
      to be built with that enabled (since it makes a significant
      difference to the compiler performance).  We can be more specific
      in the application of this, since it only applies to 32b hosts
      plus powerpc64-darwin9.
      
      The second was to work around a tool bug where -fno-PIE was not
      propagated to the link stage.  This second use is redundant,
      since the buggy toolchain cannot bootstrap current GCC sources
      anyway.
      
      This makes the host fragment more specific and reduces the number
      of toolchains for which it is included which reduces clutter in
      configure lines.
      
      Signed-off-by: default avatarIain Sandoe <iain@sandoe.co.uk>
      
      config/ChangeLog:
      
      	* mh-darwin: Make this specific to handling the
      	mdynamic-no-pic case.
      
      ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Adjust cases for which it is necessary to
      	include the Darwin host config fragment.
      54258e22
  6. Jun 15, 2021
  7. Jun 14, 2021
  8. May 19, 2021
  9. May 18, 2021
  10. May 04, 2021
  11. May 03, 2021
    • H.J. Lu's avatar
      GCC_CET_HOST_FLAGS: Check if host supports multi-byte NOPs · fd7eb4bc
      H.J. Lu authored
      Sync with binutils for PR binutils/27397.  Check if host supports
      multi-byte NOPs before enabling CET on host.
      
      config/
      
      	PR bootstrap/99703
      	* cet.m4 (GCC_CET_HOST_FLAGS): Check if host supports multi-byte
      	NOPs.
      
      libiberty/
      
      	PR bootstrap/99703
      	* configure: Regenerated.
      fd7eb4bc
  12. Apr 14, 2021
  13. Apr 13, 2021
    • Martin Storsjö's avatar
      mh-mingw: Set __USE_MINGW_ACCESS in missed C++ flags variables · 89e95ad2
      Martin Storsjö authored
      This is similar to what was done in
      eea4e2ff (where it was added to
      STAGE*_CXXFLAGS), but this adds the flag to the CXXFLAGS and
      BOOT_CXXFLAGS variables too (as it's already added to CFLAGS and
      BOOT_CFLAGS).
      
      2021-04-09  Martin Storsjö  <martin@martin.st>
      
      config/ChangeLog:
      	* mh-mingw: Set __USE_MINGW_ACCESS in missed C++ flags
      	variables
      89e95ad2
  14. Jan 06, 2021
  15. Jan 05, 2021
    • Rainer Orth's avatar
      build: libcody: Link with -lsocket -lnsl if necessary [PR98316] · a20893cf
      Rainer Orth authored
      With the introduction of C++20 modules and libcody, cc1plus and
      cc1objplus gained a dependency on the socket functions.  Before those
      were merged into libc in Solaris 11.4, one needed to link with -lsocket -lnsl
      on Solaris, so that merge broke the Solaris 11.3 build.
      
      While we already have 4 different checks for those libraries in the
      tree, I decided to import autoconf-archive's AX_LIB_SOCKET_NSL macro
      instead.  At the same time, the patch only links libcody and the
      networking libs where needed (cc1plus, cc1objplus).
      
      Bootstrapped without regressions on i386-pc-solaris2.11 (Solaris 11.3
      and 11.4), sparc-sun-solaris2.11, and x86_64-pc-linux-gnu.
      
      2020-12-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
      
      	c++tools:
      	PR c++/98316
      	* configure.ac: Include ../config/ax_lib_socket_nsl.m4.
      	(NETLIBS): Determine using AX_LIB_SOCKET_NSL.
      	* configure: Regenerate.
      	* Makefile.in (NETLIBS): Define.
      	(g++-mapper-server$(exeext)): Add $(NETLIBS).
      
      	gcc/objcp:
      	PR c++/98316
      	* Make-lang.in (cc1objplus$(exeext)): Add $(CODYLIB), $(NETLIBS).
      
      	gcc/cp:
      	PR c++/98316
      	* Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS).
      
      	gcc:
      	PR c++/98316
      	* configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
      	* aclocal.m4, configure: Regenerate.
      	* Makefile.in (NETLIBS): Define.
      	(BACKEND): Remove $(CODYLIB).
      
      	config:
      	PR c++/98316
      	* ax_lib_socket_nsl.m4: Import from autoconf-archive.
      a20893cf
  16. Jan 04, 2021
  17. Jan 03, 2021
    • Mike Frysinger's avatar
      config: import pkg.m4 from pkg-config · 3335c9f9
      Mike Frysinger authored
      We use this in the sim tree currently.  Rather than require people to
      have pkg-config installed, include it in the config/ dir.
      
      config/ChangeLog:
      
      	* pkg.m4: New file from pkg-config-0.29.2.
      3335c9f9
  18. Nov 26, 2020
  19. Nov 25, 2020
    • Matthew Malcomson's avatar
      libsanitizer: mid-end: Introduce stack variable handling for HWASAN · 0854b584
      Matthew Malcomson authored
      Handling stack variables has three features.
      
      1) Ensure HWASAN required alignment for stack variables
      
      When tagging shadow memory, we need to ensure that each tag granule is
      only used by one variable at a time.
      
      This is done by ensuring that each tagged variable is aligned to the tag
      granule representation size and also ensure that the end of each
      object is aligned to ensure the start of any other data stored on the
      stack is in a different granule.
      
      This patch ensures the above by forcing the stack pointer to be aligned
      before and after allocating any stack objects. Since we are forcing
      alignment we also use `align_local_variable` to ensure this new alignment
      is advertised properly through SET_DECL_ALIGN.
      
      2) Put tags into each stack variable pointer
      
      Make sure that every pointer to a stack variable includes a tag of some
      sort on it.
      
      The way tagging works is:
        1) For every new stack frame, a random tag is generated.
        2) A base register is formed from the stack pointer value and this
           random tag.
        3) References to stack variables are now formed with RTL describing an
           offset from this base in both tag and value.
      
      The random tag generation is handled by a backend hook.  This hook
      decides whether to introduce a random tag or use the stack background
      based on the parameter hwasan-random-frame-tag.  Using the stack
      background is necessary for testing and bootstrap.  It is necessary
      during bootstrap to avoid breaking the `configure` test program for
      determining stack direction.
      
      Using the stack background means that every stack frame has the initial
      tag of zero and variables are tagged with incrementing tags from 1,
      which also makes debugging a bit easier.
      
      Backend hooks define the size of a tag, the layout of the HWASAN shadow
      memory, and handle emitting the code that inserts and extracts tags from a
      pointer.
      
      3) For each stack variable, tag and untag the shadow stack on function
         prologue and epilogue.
      
      On entry to each function we tag the relevant shadow stack region for
      each stack variable. This stack region is tagged to match the tag added to
      each pointer to that variable.
      
      This is the first patch where we use the HWASAN shadow space, so we need
      to add in the libhwasan initialisation code that creates this shadow
      memory region into the binary we produce.  This instrumentation is done
      in `compile_file`.
      
      When exiting a function we need to ensure the shadow stack for this
      function has no remaining tags.  Without clearing the shadow stack area
      for this stack frame, later function calls could get false positives
      when those later function calls check untagged areas (such as parameters
      passed on the stack) against a shadow stack area with left-over tag.
      
      Hence we ensure that the entire stack frame is cleared on function exit.
      
      config/ChangeLog:
      
      	* bootstrap-hwasan.mk: Disable random frame tags for stack-tagging
      	during bootstrap.
      
      gcc/ChangeLog:
      
      	* asan.c (struct hwasan_stack_var): New.
      	(hwasan_sanitize_p): New.
      	(hwasan_sanitize_stack_p): New.
      	(hwasan_sanitize_allocas_p): New.
      	(initialize_sanitizer_builtins): Define new builtins.
      	(ATTR_NOTHROW_LIST): New macro.
      	(hwasan_current_frame_tag): New.
      	(hwasan_frame_base): New.
      	(stack_vars_base_reg_p): New.
      	(hwasan_maybe_init_frame_base_init): New.
      	(hwasan_record_stack_var): New.
      	(hwasan_get_frame_extent): New.
      	(hwasan_increment_frame_tag): New.
      	(hwasan_record_frame_init): New.
      	(hwasan_emit_prologue): New.
      	(hwasan_emit_untag_frame): New.
      	(hwasan_finish_file): New.
      	(hwasan_truncate_to_tag_size): New.
      	* asan.h (hwasan_record_frame_init): New declaration.
      	(hwasan_record_stack_var): New declaration.
      	(hwasan_emit_prologue): New declaration.
      	(hwasan_emit_untag_frame): New declaration.
      	(hwasan_get_frame_extent): New declaration.
      	(hwasan_maybe_enit_frame_base_init): New declaration.
      	(hwasan_frame_base): New declaration.
      	(stack_vars_base_reg_p): New declaration.
      	(hwasan_current_frame_tag): New declaration.
      	(hwasan_increment_frame_tag): New declaration.
      	(hwasan_truncate_to_tag_size): New declaration.
      	(hwasan_finish_file): New declaration.
      	(hwasan_sanitize_p): New declaration.
      	(hwasan_sanitize_stack_p): New declaration.
      	(hwasan_sanitize_allocas_p): New declaration.
      	(HWASAN_TAG_SIZE): New macro.
      	(HWASAN_TAG_GRANULE_SIZE): New macro.
      	(HWASAN_STACK_BACKGROUND): New macro.
      	* builtin-types.def (BT_FN_VOID_PTR_UINT8_PTRMODE): New.
      	* builtins.def (DEF_SANITIZER_BUILTIN): Enable for HWASAN.
      	* cfgexpand.c (align_local_variable): When using hwasan ensure
      	alignment to tag granule.
      	(align_frame_offset): New.
      	(expand_one_stack_var_at): For hwasan use tag offset.
      	(expand_stack_vars): Record stack objects for hwasan.
      	(expand_one_stack_var_1): Record stack objects for hwasan.
      	(init_vars_expansion): Initialise hwasan state.
      	(expand_used_vars): Emit hwasan prologue and generate hwasan epilogue.
      	(pass_expand::execute): Emit hwasan base initialization if needed.
      	* doc/tm.texi (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
      	TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
      	TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
      	TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
      	* doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
      	TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
      	TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
      	TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
      	* explow.c (get_dynamic_stack_base): Take new `base` argument.
      	* explow.h (get_dynamic_stack_base): Take new `base` argument.
      	* sanitizer.def (BUILT_IN_HWASAN_INIT): New.
      	(BUILT_IN_HWASAN_TAG_MEM): New.
      	* target.def (target_memtag_tag_size,target_memtag_granule_size,
      	target_memtag_insert_random_tag,target_memtag_add_tag,
      	target_memtag_set_tag,target_memtag_extract_tag,
      	target_memtag_untagged_pointer): New hooks.
      	* targhooks.c (HWASAN_SHIFT): New.
      	(HWASAN_SHIFT_RTX): New.
      	(default_memtag_tag_size): New default hook.
      	(default_memtag_granule_size): New default hook.
      	(default_memtag_insert_random_tag): New default hook.
      	(default_memtag_add_tag): New default hook.
      	(default_memtag_set_tag): New default hook.
      	(default_memtag_extract_tag): New default hook.
      	(default_memtag_untagged_pointer): New default hook.
      	* targhooks.h (default_memtag_tag_size): New default hook.
      	(default_memtag_granule_size): New default hook.
      	(default_memtag_insert_random_tag): New default hook.
      	(default_memtag_add_tag): New default hook.
      	(default_memtag_set_tag): New default hook.
      	(default_memtag_extract_tag): New default hook.
      	(default_memtag_untagged_pointer): New default hook.
      	* toplev.c (compile_file): Call hwasan_finish_file when finished.
      0854b584
    • Matthew Malcomson's avatar
      libsanitizer: Add option to bootstrap using HWASAN · 170e618e
      Matthew Malcomson authored
      This is an analogous option to --bootstrap-asan to configure.  It allows
      bootstrapping GCC using HWASAN.
      
      For the same reasons as for ASAN we have to avoid using the HWASAN
      sanitizer when compiling libiberty and the lto-plugin.
      
      Also add a function to query whether -fsanitize=hwaddress has been
      passed.
      
      ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Add --bootstrap-hwasan option.
      
      config/ChangeLog:
      
      	* bootstrap-hwasan.mk: New file.
      
      gcc/ChangeLog:
      
      	* doc/install.texi: Document new option.
      
      libiberty/ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Avoid using sanitizer.
      
      lto-plugin/ChangeLog:
      
      	* Makefile.am: Avoid using sanitizer.
      	* Makefile.in: Regenerate.
      170e618e
  20. Sep 10, 2020
  21. Sep 09, 2020
    • Rainer Orth's avatar
      config: Sync largefile.m4 from binutils-gdb · 0d7d5213
      Rainer Orth authored
      The following patch improves handling of largefile support with procfs
      on 32-bit Solaris.  It has already been approved and installed for
      binutils-gdb in the thread starting at
      
      	[PATCH] Unify Solaris procfs and largefile handling
              https://sourceware.org/pipermail/gdb-patches/2020-June/169977.html
      
      I'm syncing the config/largefile.m4 part to gcc now which is the master
      for config.  Since ACX_LARGEFILE isn't used anywhere in the gcc tree,
      I'm installing it as obvious.
      
      2020-09-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
      
      	config:
      	* largefile.m4: Sync from binutils-gdb.
      0d7d5213
  22. Aug 21, 2020
  23. Aug 20, 2020
  24. Jul 31, 2020
  25. Jul 30, 2020
    • H.J. Lu's avatar
      Require CET support only for the final GCC build · 4712bde3
      H.J. Lu authored
      With --enable-cet, require CET support only for the final GCC build.
      Don't enable CET without CET support for non-bootstrap build, in stage1
      nor for build support.
      
      config/
      
      	PR bootstrap/96202
      	* cet.m4 (GCC_CET_HOST_FLAGS): Don't enable CET without CET
      	support in stage1 nor for build support.
      
      gcc/
      
      	PR bootstrap/96202
      	* configure: Regenerated.
      
      libbacktrace/
      
      	PR bootstrap/96202
      	* configure: Regenerated.
      
      libcc1/
      
      	PR bootstrap/96202
      	* configure: Regenerated.
      
      libcpp/
      
      	PR bootstrap/96202
      	* configure: Regenerated.
      
      libdecnumber/
      
      	PR bootstrap/96202
      	* configure: Regenerated.
      
      libiberty/
      
      	PR bootstrap/96202
      	* configure: Regenerated.
      
      lto-plugin/
      
      	PR bootstrap/96202
      	* configure: Regenerated.
      4712bde3
  26. May 30, 2020
  27. May 29, 2020
    • H.J. Lu's avatar
      Avoid nested save_CFLAGS and save_LDFLAGS · 9051b548
      H.J. Lu authored
      Avoid nested save_CFLAGS and save_LDFLAGS by replacing save_CFLAGS and
      save_LDFLAGS with cet_save_CFLAGS and cet_save_LDFLAGS in cet.m4.
      
      config/
      
      	PR bootstrap/95413
      	* cet.m4: Replace save_CFLAGS and save_LDFLAGS with
      	cet_save_CFLAGS and cet_save_LDFLAGS.
      
      gcc/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libatomic/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libbacktrace/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libcc1/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libcpp/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libdecnumber/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libgcc/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libgfortran/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libgomp/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libiberty/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libitm/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libobjc/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libphobos/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libquadmath/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libsanitizer/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libssp/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libstdc++-v3/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      libvtv/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      lto-plugin/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      
      zlib/
      
      	PR bootstrap/95413
      	* configure: Regenerated.
      9051b548
  28. May 18, 2020
    • Jason Merrill's avatar
      bootstrap: Update requirement to C++11. · 5329b59a
      Jason Merrill authored
      There was general agreement last November that we would move to allowing
      C++11 features to be used in GCC 11; this patch implements that direction.
      
      ChangeLog
      2020-05-18  Jason Merrill  <jason@redhat.com>
      
      	* configure.ac: Update bootstrap dialect to -std=c++11.
      
      config/ChangeLog
      2020-05-18  Jason Merrill  <jason@redhat.com>
      
      	* ax_cxx_compile_stdcxx.m4: Import from autoconf archive with
      	an adjustment to try the default mode.
      
      gcc/ChangeLog
      2020-05-18  Jason Merrill  <jason@redhat.com>
      
      	* aclocal.m4: Add ax_cxx_compile_stdcxx.m4.
      	* configure.ac: Use AX_CXX_COMPILE_STDCXX(11).
      5329b59a
  29. May 15, 2020
    • H.J. Lu's avatar
      x86: Also check if -fcf-protection works · 4c1a5d8b
      H.J. Lu authored
      When defaulting CET run-time support to auto, check if -fcf-protection
      works.  Even if the stage1 GCC doesn't support -fcf-protection, since
      the final GCC does, CET run-time support will be enabled by default if
      binutils support CET.
      
      config/
      
      	PR bootstrap/95147
      	* cet.m4 (GCC_CET_FLAGS): Also check if -fcf-protection works
      	when defaulting to auto.
      
      libatomic/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libbacktrace/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libgcc/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libgfortran/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libgomp/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libitm/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libobjc/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libphobos/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libquadmath/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libsanitizer/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libssp/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libstdc++-v3/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      libvtv/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      
      zlib/
      
      	PR bootstrap/95147
      	* configure: Regenerated.
      4c1a5d8b
  30. May 14, 2020
    • H.J. Lu's avatar
      x86: Default CET run-time support to auto · 8d286dd1
      H.J. Lu authored
      CET has been added since GCC 8.  This patch defaults CET run-time support
      to auto.  It enables CET run-time support if asssembler supports CET
      instructions and multi-byte NOPs are enabled via SSE2.
      
      config/
      
      	* cet.m4 (GCC_CET_FLAGS): Change default to auto.
      
      gcc/
      
      	* configure: Regenerated.
      
      libatomic/
      
      	* configure: Regenerated.
      
      libbacktrace/
      
      	* configure: Regenerated.
      
      libcc1/
      
      	* configure: Regenerated.
      
      libcpp/
      
      	* configure: Regenerated.
      
      libdecnumber/
      
      	* configure: Regenerated.
      
      libgcc/
      
      	* configure: Regenerated.
      
      libgfortran/
      
      	* configure: Regenerated.
      
      libgomp/
      
      	* configure: Regenerated.
      
      libitm/
      
      	* configure: Regenerated.
      
      libobjc/
      
      	* configure: Regenerated.
      
      libquadmath/
      
      	* configure: Regenerated.
      
      libsanitizer/
      
      	* configure: Regenerated.
      
      libssp/
      
      	* configure: Regenerated.
      
      libstdc++-v3/
      
      	* configure: Regenerated.
      
      libvtv/
      
      	* configure: Regenerated.
      
      zlib/
      
      	* configure: Regenerated.
      8d286dd1
  31. May 12, 2020
    • H.J. Lu's avatar
      Enable CET in cross compiler if possible · d17cdc17
      H.J. Lu authored
      Don't perform CET run-time check for host when cross compiling.  Instead,
      enable CET in cross compiler if possible so that it will run on both CET
      and non-CET hosts.
      
      config/
      
      	PR bootstrap/94998
      	* cet.m4 (GCC_CET_HOST_FLAGS): Enable CET in cross compiler if
      	possible.
      
      libiberty/
      
      	PR bootstrap/94998
      	* configure: Regenerated.
      
      lto-plugin/
      
      	PR bootstrap/94998
      	* configure: Regenerated.
      d17cdc17
  32. Apr 28, 2020
    • H.J. Lu's avatar
      Check whether -fcf-protection=none -Wl,-z,ibt,-z,shstk work first · eedc73a2
      H.J. Lu authored
      GCC_CET_HOST_FLAGS uses -Wl,-z,ibt,-z,shstk to check if Linux/x86 host
      has Intel CET enabled by introducing an Intel CET violation on purpose.
      To avoid false positive, check whether -Wl,-z,ibt,-z,shstk works first.
      -fcf-protection=none is added to avoid false negative when -fcf-protection
      is enabled by default.
      
      config/
      
      	PR bootstrap/94739
      	* cet.m4 (GCC_CET_HOST_FLAGS): Add -fcf-protection=none to
      	-Wl,-z,ibt,-z,shstk.  Check whether -fcf-protection=none
      	-Wl,-z,ibt,-z,shstk works first.
      
      libiberty/
      
      	PR bootstrap/94739
      	* configure: Regenerated.
      
      lto-plugin/
      
      	PR bootstrap/94739
      	* configure: Regenerated.
      eedc73a2
  33. Apr 25, 2020
    • H.J. Lu's avatar
      Enable Intel CET in liblto_plugin.so on Intel CET enabled host · 8fc8bf80
      H.J. Lu authored
      Since ld is Intel CET enabled on Intel CET enabled host, dlopen fails on
      liblto_plugin.so if it isn't Intel CET enabled.  Add GCC_CET_HOST_FLAGS
      to cet.m4, use it in libiberty and lto-plugin to always enable Intel
      CET in liblto_plugin.so on Intel CET enabled host.
      
      On Linux/x86 host, enable Intel CET by default if assembler and compiler
      support Intel CET so that the generated liblto_plugin.so can be used on
      both CET and non-CET machines.  It is an error to disable Intel CET in
      liblto_plugin.so on Intel CET enabled host.
      
      config/
      
      	PR bootstrap/94739
      	* cet.m4 (GCC_CET_HOST_FLAGS): New.
      
      libiberty/
      
      	PR bootstrap/94739
      	* Makefile.in (COMPILE.c): Add @CET_HOST_FLAGS@.
      	(configure_deps): Add $(srcdir)/../config/cet.m4 and
      	$(srcdir)/../config/enable.m4.
      	* aclocal.m4: Include ../config/cet.m4 and ../config/enable.m4.
      	* configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
      	AC_SUBST(CET_HOST_FLAGS).
      	* configure: Regenerated.
      
      lto-plugin/
      
      	PR bootstrap/94739
      	* Makefile.am (AM_CFLAGS): Add $(CET_HOST_FLAGS).
      	* configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
      	AC_SUBST(CET_HOST_FLAGS).
      	* Makefile.in: Regenerated.
      	* aclocal.m4: Likewise.
      	* configure: Likewise.
      8fc8bf80
  34. Apr 22, 2020
    • Jakub Jelinek's avatar
      libgfortran: Provide some further math library fallbacks [PR94694] · 1868599f
      Jakub Jelinek authored
      The following patch provides some further math library fallbacks.
      fmaf can be implemented using fma if available, fma and fmal can use
      x * y + z as fallback, it is not perfect, but e.g. glibc on various arches
      has been using that as fallback for many years,
      and copysign/copysignl/fabs/fabsl can be implemented using corresponding
      __builtin_* if we make sure that gcc expands it inline instead of using
      a library call (these days it is expanded inline on most targets).
      
      2020-04-22  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libfortran/94694
      	PR libfortran/94586
      	* configure.ac: Add math func checks for fmaf, fma and fmal.  Add
      	HAVE_INLINE_BUILTIN_COPYSIGN check.
      	* c99_protos.h (copysign, fmaf, fma, fmal): Provide fallback
      	prototypes.
      	(HAVE_COPYSIGN, HAVE_FMAF, HAVE_FMA, HAVE_FMAL): Define if not
      	defined and fallback version is provided.
      	* intrinsics/c99_functions.c (copysign, fmaf, fma, fmal): Provide
      	fallback implementations if possible
      	* configure: Regenerated.
      	* config.h.in: Regenerated.
      
      	* math.m4 (GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK1,
      	GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK2): New.
      1868599f
  35. Feb 12, 2020
    • Sandra Loosemore's avatar
      Use a non-empty test program to test ability to link. · 02ce382c
      Sandra Loosemore authored
      On bare-metal targets, I/O support is typically provided by a BSP and
      requires a linker script and/or hosting library to be specified on the
      linker command line.  Linking an empty program with the default linker
      script may succeed, however, which confuses libstdc++ configuration
      when programs that probe for the presence of various I/O features fail
      with link errors.
      
      2020-02-12  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR libstdc++/79193
      	PR libstdc++/88999
      
      	config/
      	* no-executables.m4: Use a non-empty program to test for linker
      	support.
      
      	libgcc/
      	* configure: Regenerated.
      
      	libgfortran/
      	* configure: Regenerated.
      
      	libiberty/
      	* configure: Regenerated.
      
      	libitm/
      	* configure: Regenerated.
      
      	libobjc/
      	* configure: Regenerated.
      
      	libquadmath/
      	* configure: Regenerated.
      
      	libssp/
      	* configure: Regenerated.
      
      	libstdc++v-3/
      	* configure: Regenerated.
      02ce382c
  36. Feb 01, 2020
    • Andrew Burgess's avatar
      Fixes after recent configure changes relating to static libraries · 20fa702b
      Andrew Burgess authored
      This commit:
      
        commit e7c26e04 (tjteru/master)
        Date:   Wed Jan 22 14:54:26 2020 +0000
      
            gcc: Add new configure options to allow static libraries to be selected
      
      contains a couple of issues.  First I failed to correctly regenerate
      all of the configure files it should have done.  Second, there was a
      mistake in lib-link.m4, one of the conditions didn't use pure sh
      syntax, I wrote this:
      
        if x$lib_type = xauto || x$lib_type = xshared; then
      
      When I should have written this:
      
        if test "x$lib_type" = "xauto" || test "x$lib_type" = "xshared"; then
      
      These issues were raised on the mailing list in these messages:
      
        https://gcc.gnu.org/ml/gcc-patches/2020-01/msg01827.html
        https://gcc.gnu.org/ml/gcc-patches/2020-01/msg01921.html
      
      config/ChangeLog:
      
      	* lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Update shell syntax.
      
      gcc/ChangeLog:
      
      	* configure: Regenerate.
      
      intl/ChangeLog:
      
      	* configure: Regenerate.
      
      libcpp/ChangeLog:
      
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	* configure: Regenerate.
      20fa702b
  37. Jan 27, 2020
    • Andrew Burgess's avatar
      gcc: Add new configure options to allow static libraries to be selected · e7c26e04
      Andrew Burgess authored
      The motivation behind this change is to make it easier for a user to
      link against static libraries on a target where dynamic libraries are
      the default library type (for example GNU/Linux).
      
      Further, my motivation is really for linking libraries into GDB,
      however, the binutils-gdb/config/ directory is a copy of gcc/config/
      so changes for GDB need to be approved by the GCC project first.
      
      After making this change in the gcc/config/ directory I've run
      autoreconf on all of the configure scripts in the GCC tree and a
      couple have been updated, so I'll use one of these to describe what my
      change does.
      
      Consider libcpp, this library links against libiconv.  Currently if
      the user builds on a system with both static and dynamic libiconv
      installed then autotools will pick up the dynamic libiconv by
      default.  This is almost certainly the right thing to do.
      
      However, if the user wants to link against static libiconv then things
      are a little harder, they could remove the dynamic libiconv from their
      system, but this is probably a bad idea (other things might depend on
      that library), or the user can build their own version of libiconv,
      install it into a unique prefix, and then configure gcc using the
      --with-libiconv-prefix=DIR flag.  This works fine, but is somewhat
      annoying, the static library available, I just can't get autotools to
      use it.
      
      My change then adds a new flag --with-libiconv-type=TYPE, where type
      is either auto, static, or shared.  The default auto, ensures we keep
      the existing behaviour unchanged.
      
      If the user configures with --with-libiconv-type=static then the
      configure script will ignore any dynamic libiconv it finds, and will
      only look for a static libiconv, if no static libiconv is found then
      the configure will continue as though there is no libiconv at all
      available.
      
      Similarly a user can specify --with-libiconv-type=shared and force the
      use of shared libiconv, any static libiconv will be ignored.
      
      As I've implemented this change within the AC_LIB_LINKFLAGS_BODY macro
      then only libraries configured using the AC_LIB_LINKFLAGS or
      AC_LIB_HAVE_LINKFLAGS macros will gain the new configure flag.
      
      If this is accepted into GCC then there will be follow on patches for
      binutils and GDB to regenerate some configure scripts in those
      projects.
      
      For GCC only two configure scripts needed updated after this commit,
      libcpp and libstdc++-v3, both of which link against libiconv.
      
      config/ChangeLog:
      
      	* lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Add new
      	--with-libXXX-type=... option.  Use this to guide the selection of
      	either a shared library or a static library.
      
      libcpp/ChangeLog:
      
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	* configure: Regenerate.
      e7c26e04
  38. Jan 24, 2020
    • Maciej W. Rozycki's avatar
      Add `--with-toolexeclibdir=' configuration option · e8e66971
      Maciej W. Rozycki authored
      Provide means, in the form of a `--with-toolexeclibdir=' configuration
      option, to override the default installation directory for target
      libraries, otherwise known as $toolexeclibdir.  This is so that it is
      possible to get newly-built libraries, particularly the shared ones,
      installed in a common place, so that they can be readily used by the
      target system as their host libraries, possibly over NFS, without a need
      to manually copy them over from the currently hardcoded location they
      would otherwise be installed in.
      
      In the presence of the `--enable-version-specific-runtime-libs' option
      and for configurations building native GCC the option is ignored.
      
      	config/
      	* toolexeclibdir.m4: New file.
      
      	gcc/
      	* doc/install.texi (Cross-Compiler-Specific Options): Document
      	`--with-toolexeclibdir' option.
      
      	libada/
      	* Makefile.in (configure_deps): Add `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	libatomic/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libffi/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* man/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libgcc/
      	* Makefile.in (configure_deps): Add `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	libgfortran/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libgomp/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libhsail-rt/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libitm/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libobjc/
      	* Makefile.in (aclocal_deps): Add `toolexeclibdir.m4'.
      	* aclocal.m4: Include `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	liboffloadmic/
      	* plugin/configure.ac: Handle `--with-toolexeclibdir='.
      	* plugin/Makefile.in: Regenerate.
      	* plugin/aclocal.m4: Regenerate.
      	* plugin/configure: Regenerate.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libphobos/
      	* m4/druntime.m4: Handle `--with-toolexeclibdir='.
      	* m4/Makefile.in: Regenerate.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libquadmath/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libsanitizer/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* asan/Makefile.in: Regenerate.
      	* interception/Makefile.in: Regenerate.
      	* libbacktrace/Makefile.in: Regenerate.
      	* lsan/Makefile.in: Regenerate.
      	* sanitizer_common/Makefile.in: Regenerate.
      	* tsan/Makefile.in: Regenerate.
      	* ubsan/Makefile.in: Regenerate.
      
      	libssp/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libstdc++-v3/
      	* acinclude.m4: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* doc/Makefile.in: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* libsupc++/Makefile.in: Regenerate.
      	* po/Makefile.in: Regenerate.
      	* python/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++17/Makefile.in: Regenerate.
      	* src/c++98/Makefile.in: Regenerate.
      	* src/filesystem/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libvtv/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	zlib/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      e8e66971
Loading