and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

This project is mirrored from git://gcc.gnu.org/git/gcc.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 14 Nov, 2019 2 commits
  2. 13 Nov, 2019 1 commit
  3. 12 Nov, 2019 1 commit
  4. 11 Nov, 2019 1 commit
  5. 10 Nov, 2019 1 commit
  6. 09 Nov, 2019 1 commit
  7. 08 Nov, 2019 1 commit
  8. 07 Nov, 2019 1 commit
  9. 06 Nov, 2019 1 commit
  10. 05 Nov, 2019 1 commit
  11. 04 Nov, 2019 1 commit
  12. 03 Nov, 2019 2 commits
    • Iain Sandoe's avatar
      [Darwin, testsuite] Fix PR 79274 · 649db622
      Iain Sandoe authored
      The solution for initialising global TLS variables does not apply
      to platforms using emulated TLS.  XFAIL the test for this on Darwin.
      
      2019-11-03  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR c++/79274
      	* g++.dg/tls/pr77285-2.C: XFAIL test for Darwin.
      
      From-SVN: r277751
      649db622
    • GCC Administrator's avatar
      Daily bump. · 558877be
      GCC Administrator authored
      From-SVN: r277746
      558877be
  13. 02 Nov, 2019 2 commits
    • Iain Sandoe's avatar
      [testsuite] Require alias support for pr90760. · 334a72eb
      Iain Sandoe authored
      This test fails on Darwin because it requires alias support, so
      add the relevant dg-requires.
      
      gcc/testsuite/
      
      2019-11-02  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.dg/pr90760.c: Require alias support.
      
      From-SVN: r277745
      334a72eb
    • GCC Administrator's avatar
      Daily bump. · ee7037c0
      GCC Administrator authored
      From-SVN: r277737
      ee7037c0
  14. 01 Nov, 2019 11 commits
    • Iain Sandoe's avatar
      [Darwin, machopic] Back out part of PR71767 fix. · ff76f68f
      Iain Sandoe authored
      We applied a conservative, but fairly large, hammer to fix PR71767.
      However, ideally, we want minimise the number of symbols visible to
      ld64 and to match the cases emitted by clang (since that's what ld64
      is expecting). Now we've improved the handling of indirections, we
      can make the indirection symbols local when they are in the regular
      non-lazy symbol pointers section. We will continue to make any
      indirections in the data section visible (since right now we have no
      way to track if a given symbol follows a weak global).
      This change makes no difference to handling of labels for constants
      (to be revised in a future patch).
      
      There's a mechanical change to a number of tests (allowing 'l' or 'L'
      as the indirection symbol prefix).
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_indirection_name): Rework the
      	function to emit linker-visible symbols only for indirections
      	in the data section.  Clean up the code and update comments.
      
      gcc/testsuite/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline.
      	2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.target/i386/indirect-thunk-1.c: Allow 'l' or 'L' in
      	indirection label prefix, for Darwin.
      	* gcc.target/i386/indirect-thunk-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
      	* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-1.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
      	* gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
      	* gcc.target/i386/pr32219-2.c: Likewise.
      	* gcc.target/i386/pr32219-3.c: Likewise.
      	* gcc.target/i386/pr32219-4.c: Likewise.
      	* gcc.target/i386/pr32219-7.c: Likewise.
      	* gcc.target/i386/pr32219-8.c: Likewise.
      	* gcc.target/i386/ret-thunk-14.c: Likewise.
      	* gcc.target/i386/ret-thunk-15.c: Likewise.
      	* gcc.target/i386/ret-thunk-9.c: Likewise.
      
      From-SVN: r277727
      ff76f68f
    • Iain Sandoe's avatar
      [Darwin] Fix Objective-C NeXT ABI version check diagnostics. · 87b14bf0
      Iain Sandoe authored
      This fixes build errors when used with newer GCC and corrects a mistake
      in the checking of ABI versions.
      
      276768 We were missing a check for the case that user's ABI was > 2 and the
      codegen was for 64 bit.
      
      276635 Fix some format-related build warnings.
      
      This fixes two error messages to avoid punctuation and contracted
      negations.
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (darwin_override_options): Make the check for
      	Objective-C ABI version more specific for 64bit code.
      
      	Backport from mainline
      	2019-10-06  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (darwin_override_options): Adjust objective-c
      	ABI version error messages to avoid punctuation and contracted
      	negations.
      
      From-SVN: r277726
      87b14bf0
    • Iain Sandoe's avatar
      [Darwin] Some TLC for older Darwin versions. · 1830e27d
      Iain Sandoe authored
      The library handling and some of the options for creating the crts for
      the older PPC Darwin versions had bit-rotted somewhat. This adjusts the
      build criteria for the crts to avoid newer ld64 versions warnings about
      mismatches in build and object versions.
      
      Added to some of the comments that it's documented why the specs are as
      they are.
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
      	(STARTFILE_SPEC): Split crt3 into a separate spec.
      	(DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
      	(DARWIN_CRT2_SPEC): New.
      	(DARWIN_CRT3_SPEC): New.
      	(MIN_LD64_OMIT_STUBS): Revise to 62.1.
      	* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
      	(DARWIN_CRT3_SPEC): New.
      
      libgcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline.
      	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config.host (powerpc-*-darwin*,powerpc64-*-darwin*): Revise crt
      	list.
      	* config/rs6000/t-darwin: Build crt3_2 for older systems.  Revise
      	mmacosx-version-min for crts to run across all system versions.
      	* config/rs6000/t-darwin64 (LIB2ADD): Remove.
      	* config/t-darwin: Revise mmacosx-version-min for crts to run across
      	system versions >= 10.4.
      
      From-SVN: r277725
      1830e27d
    • Iain Sandoe's avatar
      [Darwin, PPC] Move the out of line register save/restore to an endfile. · f8d58fbe
      Iain Sandoe authored
      272660
      We have been including this in libgcc, which means that we have to append
      -lgcc even when using shared libgcc. In preparation for revision of libgcc
      split this into an endfile.
      
      272759 Correct whitespace in specs.
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
      	spec.
      
      	Backport from mainline
      	2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/darwin.h (ENDFILE_SPEC): New.
      
      libgcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline.
      	2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config.host: Add libef_ppc.a to the extra files for powerpc-darwin.
      	* config/rs6000/t-darwin: (PPC_ENDFILE_SRC, PPC_ENDFILE_OBJS): New.
      	Build objects for the out of line save/restore register functions
      	so that they can be used for any supported Darwin version.
      	* config/t-darwin: Default the build Darwin version to Darwin8
      	(MacOS 10.4).
      
      From-SVN: r277724
      f8d58fbe
    • Iain Sandoe's avatar
      [Darwin] The need for FDE symbols is dependent on linker used, not OS rev. · 092a2f2a
      Iain Sandoe authored
      For very old toolchains, the compiler generated extra symbols that mark the
      start of each FDE. We no longer need this (since xcode 3 era) - so, for
      compatibility with newer linkers, omit this when it is not required.
      
      Since we have detection of the linker version, we can use that directly to
      determine if support is needed.
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (darwin_emit_unwind_label): New default to false.
      	(darwin_override_options): Set darwin_emit_unwind_label as needed.
      
      From-SVN: r277722
      092a2f2a
    • Iain Sandoe's avatar
      [Darwin] The need for picsym stubs is dependent on linker used, not OS rev. · 37130776
      Iain Sandoe authored
      272356 For very old toolchains, the compiler generated pic symbol stubs that
      provide the necessary indirections. We no longer need this (since xcode
      3 era) and it's more efficient for the linker to make one stub when it
      knows a symbol is needed that for us to emit them speculatively in every
      object.
      
      Our current codegen is making the assumption that a specific OS version
      uses a specific linker version - and therefore the presence of support
      could be based on the target OS rev. Of course, that's way too simplistic
      (most likely bogus for cross-toolchains) and we want to make things explict.
      
      Since we have detection of the linker version, we can use that directly
      (A config test for support for stub-less linking might also be feasible
      but much more involved).
      
      Finally, should the user wish to generate code that caters for export to
      use in an environment with an older toolchain, the generation of stubs
      can be forced from the command line.
      
      In addition to the points above, branch islanding and a long branch opt
      for PowerPC Darwin has become conflated with the emission of these stubs.
      
      274379 There is no need to distinguish PIC/non-PIC symbol stubs.
      
      So we can use a single flag for both.
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_indirect_call_target): Rename symbol stub
      	flag.
      	(darwin_override_options): Likewise.
      	* config/darwin.h: Likewise.
      	* config/darwin.opt: Likewise.
      	* config/i386/i386.c (output_pic_addr_const): Likewise.
      	* config/rs6000/darwin.h: Likewise.
      	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
      	* config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
      	... this TARGET_MACHO_SYMBOL_STUBS.
      	(FUNCTION_PROFILER):Likewise.
      	* config/i386/i386.h: Likewise.
      
      	Backport from mainline
      	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_indirect_call_target): Use renamed
      	darwin_picsymbol_stubs to decide on output.
      	(darwin_override_options): Handle darwin_picsymbol_stubs.
      	* config/darwin.h (MIN_LD64_OMIT_STUBS): New.
      	(LD64_VERSION): Revise default.
      	* config/darwin.opt: (mpic-symbol-stubs): New option.
      	(darwin_picsymbol_stubs): New variable.
      	* config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
      	rename to TARGET_MACHO_PICSYM_STUBS.
      	* config/i386/i386.c (output_pic_addr_const): Likewise.
      	* config/i386/i386.h Likewise.
      	* config/rs6000/darwin.h: Likewise.
      	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
      	darwin_picsymbol_stubs.
      
      gcc/testsuite/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline.
      	2019-08-13  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* obj-c++.dg/stubify-1.mm: Rename symbol stub option.
      	* obj-c++.dg/stubify-2.mm: Likewise.
      	* objc.dg/stubify-1.m: Likewise.
      	* objc.dg/stubify-2.m: Likewise.
      
      From-SVN: r277721
      37130776
    • Iain Sandoe's avatar
      [Darwin, PPC] Install the same headers as other sub-targets. · f8689f6b
      Iain Sandoe authored
      This is primarily in order to improve testsuite coverage, we might elect
      to prune the list at some point.
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
      	override on extra_headers.
      
      From-SVN: r277720
      f8689f6b
    • Iain Sandoe's avatar
      [Darwin, PPC] Allow the user to override the use of hard float in kexts. · 8cb85018
      Iain Sandoe authored
      The default for the kernel is soft-float, however a user writing a kernel
      extension might want to make use of hard float. This aligns GCC with the
      system tools and makes ' -mkernel -mhard-float ' work as expected.
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
      	user-specified float mode choice for kernel mode code.
      
      From-SVN: r277718
      8cb85018
    • Iain Sandoe's avatar
      [Darwin, PPC] Handle GCC target pragma. · bf5d24ca
      Iain Sandoe authored
      For compatibility with other members of the port.
      Note, that we do not handle the longcall attribute, since longcall
      is not required/used on current Darwin.
      
      gcc/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/darwin.h: Handle GCC target pragma.
      
      From-SVN: r277717
      bf5d24ca
    • Iain Sandoe's avatar
      [Darwin, PPC, testsuite] Exclude darwin from VSX, power8 and power9. · 10f6583a
      Iain Sandoe authored
      If we build Darwin with a modern assembler, then it might well
      recognise insns that cannot be used on current Darwin systems.
      
      The patch augments the tests for feature support for VSX,
      power8 and power9 to exclude Darwin even if the assembler can
      handle the instructions.
      
      gcc/testsuite/
      
      2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline.
      	2019-05-15  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* lib/target-supports.exp 
      	(check_effective_target_powerpc_p8vector_ok): No support for Darwin.
      	(check_effective_target_powerpc_p9vector_ok): Likewise.
      	(check_effective_target_powerpc_float128_sw_ok): Likewise.
      	(check_effective_target_powerpc_float128_hw_ok): Likewise.
      	(check_effective_target_powerpc_vsx_ok): Likewise.
      	* gcc.target/powerpc/bfp/bfp.exp: Don't try to run this for Darwin.
      	* gcc.target/powerpc/dfp/dfp.exp: Likewise.
      
      From-SVN: r277716
      10f6583a
    • GCC Administrator's avatar
      Daily bump. · 8ae6abb8
      GCC Administrator authored
      From-SVN: r277700
      8ae6abb8
  15. 31 Oct, 2019 1 commit
  16. 30 Oct, 2019 1 commit
  17. 29 Oct, 2019 9 commits
    • Iain Sandoe's avatar
      [Darwin, PPC] Fix PR 65342. · 9b6d95b9
      Iain Sandoe authored
      The current Darwin load/store lo_sum patterns have neither predicate nor
      constraint. This means that most parts of the backend, which rely on
      recog() to validate the rtx, can produce invalid combinations/selections.
      
      For 32bit cases this isn't a problem since we can load/store to unaligned
      addresses using D-mode insns.
      
      Conversely, for 64bit instructions that use DS mode, this can manifest as
      assemble errors (for an assembler that checks the LO14 relocations), or as
      crashes caused by wrong offsets (or worse, wrong content for the two LSBs).
      
      What we want to check for Y on Darwin is:
        - that the alignment of the Symbols' target is sufficient for DS mode
        - that the offset is suitable for DS mode.
          (while looking through the Mach-O PIC unspecs).
      
      So, the patch removes the Darwin-specific lo_sum patterns (we begin using
      the movdi_internal64 patterns). We also we need to extend the handling of the
      mem_operand_gpr constraint to allow looking through Mach-O PIC UNSPECs in
      the lo_sum cases.
      
      2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-10-17  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR target/65342
      	* config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
      	(movdi_low_st): Delete.
      	* config/rs6000/rs6000.c
      	(darwin_rs6000_legitimate_lo_sum_const_p): New.
      	(mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
      	* config/rs6000/rs6000.md (movsi_low): Delete.
      
      From-SVN: r277590
      9b6d95b9
    • Iain Sandoe's avatar
      [Darwin, machopic] Fix for 67183 · 2e58cf13
      Iain Sandoe authored
      When we're using the LLVM-based assembler (the default on modern Darwin)
      the ordering of stubs and non-lazy symbol pointers is important.
      
      Interleaving the output (current GCC behaviour) leads to crashes which
      prevents us from building code with symbol stubs.
      
      To resolve this, we order the output of stubs and symbol indirections:
      
      1. Any indirections in the data section
      2. Symbol stubs.
      3. Non-lazy symbol pointers.
      
      At present, we still emit LTO sections after these.
      
      2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR target/67183
      	* config/darwin.c (machopic_indirection): New field to flag
      	non-lazy-symbol-pointers in the data section.
      	(machopic_indirection_name): Compute if an indirection should
      	appear in the data section.
      	(machopic_output_data_section_indirection): New callback split
      	from machopic_output_indirection.
      	(machopic_output_stub_indirection): Likewise.
      	(machopic_output_indirection): Retain the code for non-lazy
      	symbol pointers in their regular section.
      	(machopic_finish): Use the new callbacks to order the indirection
      	output.
      
      From-SVN: r277587
      2e58cf13
    • Iain Sandoe's avatar
      [Darwin, machopic] Preparatory patches. · 67fcb83c
      Iain Sandoe authored
      This is a combined set of 5 patches that allows us to fix PRs 65342
      and 67183.
      
      276924 Make machopic_finish() static.
      
      276767 Set a SYMBOL flag for indirections.
      
      We are able to treat these specially where needed in legitimate address
      tests (specifically, they are guaranteed to be pointer-aligned).
      
      276708 Compute and cache indirection rules.
      
      This caches a check for the requirement to indirect a symbol in the Darwin
      ABI, and uses it where needed. We also ensure that we place the indirection
      pointers into the non-lazy symbol pointers section. Other placements have
      occurred with various platform toolchains - but these seem to have been
      unintentional so we match current platform toolchains.
      
      276675 Consider visibility in indirections.
      
      For weak, hidden vars the indirection should just be as normal, that
      is that the indirections for such symbols should appear in the non-lazy
      symbol pointers table, not in the .data section.
      
      276674 Initial tidy of Mach-O symbol handling.
      
      We want to improve the detection and caching of symbol-properties
      so that (a) we can make the compiler's output match the platform
      norms (b) we can improve efficiency by checking flags instead of
      inspecting strings. (c) The fix for PR71767 was a largish hammer
      and we want to reduce the number of symbols that are made linker-
      visible.
      
      This first patch is largely typographical changes with no functional
      difference intended:
      
      - Tries to ensure that there's no overlap between the symbols used in
      the Mach-O case and those declared in the i386 or rs6000 port trees.
      
      - Some improvement to comments.
      
      - Makes the naming of the symbol flags consistent with other uses.
      
      - Provides a predicate macro for each use.
      
      2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin-protos.h (machopic_finish): Delete.
      	* config/darwin.c (machopic_finish): Make static.
      
      	Backport from mainline
      	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_indirect_data_reference): Set flag to
      	indicate that the new symbol is an indirection.
      	(machopic_indirect_call_target): Likewise.
      	* config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
      	(MACHO_SYMBOL_INDIRECTION_P): New.
      	(MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
      
      	Backport from mainline
      	2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_indirect_data_reference): Check for
      	required indirections before making direct access to defined
      	values.
      	(machopic_output_indirection): Place the indirected pointes for
      	required indirections into the non-lazy symbol pointers section.
      	(darwin_encode_section_info):
      	* config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
      	(MACHO_SYMBOL_MUST_INDIRECT_P): New.
      
      	Backport from mainline
      	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_output_indirection): Don't put
      	hidden symbol indirections into the .data section, use the
      	non-lazy symbol pointers section as normal.
      	(darwin_encode_section_info): Record if a symbol is hidden.
      	* config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
      	(MACHO_SYMBOL_HIDDEN_VIS_P): New.
      
      	Backport from mainline
      	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_symbol_defined_p): Use symbol flag
      	predicates instead of accessing bits directly.
      	(machopic_indirect_call_target): Likewise.
      	(machopic_output_indirection): Likewise.
      	(darwin_encode_section_info): Improve description.  Use renamed
      	symbol flags.  Use predicate macros for variables and functions.
      	* config/darwin.h:
      	Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
      	Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
      	Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
      	(MACHO_SYMBOL_VARIABLE_P): New.
      	(MACHO_SYMBOL_DEFINED_P):New.
      	(MACHO_SYMBOL_STATIC_P): New.
      	* config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
      	(SYMBOL_FLAG_SUBT_DEP): New.
      	* config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
      
      From-SVN: r277586
      67fcb83c
    • Iain Sandoe's avatar
      [Darwin, testsuite] Skip pr72802.c. · 5e0adba0
      Iain Sandoe authored
      As fallout from 19315, which is not fixed on this branch, the presence
      of an unused static variable causes a 'promotion' of that to extern.
      This produces wrong code on Darwin when Mach-O PIC is in use (m32 X86
      and all PPC). So skip this unconditionally, as noted in the PR trail,
      the usefulness of the test is questionable anyway.
      
      gcc/testsuite/
      
      2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.c-torture/compile/pr72802.c: Skip for Darwin.
      
      From-SVN: r277585
      5e0adba0
    • Iain Sandoe's avatar
      [Darwin] Amend section for constants with relocations. · 0f700e89
      Iain Sandoe authored
      Darwin's linker doesn't like text section relocations (they require special
      enabling). The Fortran FE, at least, seems to generate cases where the
      initialiser for a pointer constant can need a relocation. We can handle
      this by special-casing SECCAT_RODATA when the relocation is present by
      placing the constant in the .const_data section.
      
      2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-10-05  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR target/59888
      	* config/darwin.c (darwin_rodata_section): Add relocation flag,
      	choose const_data section for constants with relocations.
      	(machopic_select_section): Pass relocation flag to
      	darwin_rodata_section ().
      
      From-SVN: r277584
      0f700e89
    • Iain Sandoe's avatar
      [Darwin] Update machopic_legitimize_pic_address. · 35cd1262
      Iain Sandoe authored
      Some changes were missed here in the transition to LRA. The Darwin
      archs are all using LRA now, testing for reload is not correct.
      
      2019-10-18  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-09-21  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c (machopic_legitimize_pic_address): Check
      	for lra, rather than reload.
      
      From-SVN: r277583
      35cd1262
    • Iain Sandoe's avatar
      [Darwin] Pick up SDKROOT as the sysroot fallback. · 2928367a
      Iain Sandoe authored
      For compatibility with xcrun and the behaviour of the clang driver, make use
      of the setting of the SDKROOT environment variable when it is available.
      This applies to both finding headers and libraries (i.e. it is also passed to
      ld64).
      
      Priority:
      1. User's command-line specified --sysroot= or -isysroot.
      2. The SDKROOT variable when set, and validated.
      3. Any sysroot provided by --with-sysroot= configuration parameter.
      
      SDKROOT is checked thus:
      1. Presence.
      2. That it starts with / (i.e. 'absolute').
      3. That it is not / only (since that's the default).
      4. That it is readable by the process executing the driver.
      
      This is pretty much the same rule set as used by the clang driver.
      
      NOTE: (3) might turn out to be overly restrictive in the case that we
      have configured with --with-sysroot= and then we want to run on a system
      with an installation of the headers/libraries in /. We can revisit this
      if that turns out to be an important use-case.
      
      So one can do:
      
      xcrun --sdk macosx /path/to/gcc ....
      
      and that provides the SDK path as the sysroot to GCC as expected.
      
      CAVEAT: An unfortunate effect of the fact that gcc (and g++) are
      executables in the Xcode installation, which are found ahead of any such
      named in the $PATH
      
      PATH=/path/to/gcc/install:$PATH
      xcrun --sdk macosx gcc ....
      
      does *not* work, instead that executes the clang from the xcode/commmand
      line tools installation.
      
      PATH=/path/to/gcc/install:$PATH
      xcrun --sdk macosx x64_64-apple-darwinXX-gcc ...
      
      does work as expected, however.
      
      2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-10-03  Iain Sandoe  <iain@sandoe.co.uk>
      
      	PR target/87243
      	* config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
      	(darwin_driver_init): Use the sysroot provided by SDKROOT when that
      	is available and the user has not set one on the command line.
      
      From-SVN: r277582
      2928367a
    • Iain Sandoe's avatar
      [Darwin, specs] Fix driver handling of PIE options. · 3260d09d
      Iain Sandoe authored
      pie, no-pie and rdynamic are driver options, we can process them in the
      relevant place and drop them once dealt with. There's no need to generate
      a new header to process the no_compact_unwind which is applied on the
      basis of the target system.
      
      Support for the -pie, -no_pie and -no_compact_unwind options should ideally
      be checked at configure time, however the status quo is to assert that linkers
      capable of targeting the relevant systems support these options (i.e. we trust
      that the user doesn't attempt to configure inappropriately).
      
      TODO: check the availability of the linker opts in configure rather than
      trusting to the user.
      
      This will fix the fail of pie-7.c, which is a result of failing to handle the
      no-pie driver option.
      
      2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
      
      	Backport from mainline
      	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
      	(RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
      	(DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
      	clauses.
      	(LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
      	DARWIN_NOPIE_SPEC.
      
      	Backport from mainline
      	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
      	and DARWIN_NOPIE_SPEC.
      	(RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
      	(DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
      	(DARWIN_NOPIE_SPEC): Collate from darwin10.h.
      	(DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
      	(DARWIN_EXPORT_DYNAMIC): Delete.
      	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
      	and pie options processing to  darwin.h.
      	* config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
      
      From-SVN: r277581
      3260d09d
    • GCC Administrator's avatar
      Daily bump. · c3864e66
      GCC Administrator authored
      From-SVN: r277547
      c3864e66
  18. 28 Oct, 2019 1 commit
  19. 27 Oct, 2019 1 commit
    • Paul Thomas's avatar
      backport: re PR fortran/86248 (LEN_TRIM in specification expression causes link failure) · 07ae342a
      Paul Thomas authored
      2019-10-27  Paul Thomas  <pault@gcc.gnu.org>
      
      	Backport from mainline
      	PR fortran/86248
      	* resolve.c (flag_fn_result_spec): Correct a typo before the
      	function declaration.
      	* trans-decl.c (gfc_sym_identifier): Boost the length of 'name'
      	to allow for all variants. Simplify the code by using a pointer
      	to the symbol's proc_name and taking the return out of each of
      	the conditional branches. Allow symbols with fn_result_spec set
      	that do not come from a procedure namespace and have a module
      	name to go through the non-fn_result_spec branch.
      
      2019-10-27  Paul Thomas  <pault@gcc.gnu.org>
      
      	Backport from mainline
      	PR fortran/86248
      	* gfortran.dg/char_result_19.f90 : New test.
      	* gfortran.dg/char_result_mod_19.f90 : Module for the new test.
      
      From-SVN: r277488
      07ae342a