From b2cee5e1e89c8f939bc36fe9756befcb93d96982 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Wed, 30 Dec 2020 10:36:52 +0000 Subject: [PATCH] Darwin : Adjust defaults for current bootstrap constraints. The toolchain now requires a C++11 compiler to bootstrap and none of the older Darwin toolchains which were based on stabs debugging are suitable. We can simplify the debug setup now. gcc/ChangeLog: * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF (ASM_DEBUG_SPEC):Only define if the assembler supports stabs. (PREFERRED_DEBUGGING_TYPE): Default to DWARF. (DARWIN_PREFER_DWARF): Define. * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove. (DARWIN_PREFER_DWARF): Likewise (DSYMUTIL_SPEC): Likewise. (COLLECT_RUN_DSYMUTIL): Likewise. (ASM_DEBUG_SPEC): Likewise. (ASM_DEBUG_OPTION_SPEC): Likewise. --- gcc/config/darwin.h | 37 ++++++++++++++++++++++++++----------- gcc/config/darwin9.h | 26 -------------------------- 2 files changed, 26 insertions(+), 37 deletions(-) diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index da40a08443e..93e7796e850 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -241,12 +241,18 @@ extern GTY(()) int darwin_ms_struct; #define DSYMUTIL "\ndsymutil" +/* Spec that controls whether the debug linker is run automatically for + a link step. This needs to be done if there is a source file on the + command line which will result in a temporary object (and debug is + enabled). */ + #define DSYMUTIL_SPEC \ "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ %{v} \ - %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ - %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \ - %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" + %{g*:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ + %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|\ + .f95|.f03|.f77|.for|.F|.F90|.F95|.F03: \ + %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" #define LINK_COMMAND_SPEC LINK_COMMAND_SPEC_A DSYMUTIL_SPEC @@ -472,22 +478,31 @@ extern GTY(()) int darwin_ms_struct; %{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \ %{static}" ASM_MMACOSX_VERSION_MIN_SPEC -/* Default ASM_DEBUG_SPEC. Darwin's as cannot currently produce dwarf - debugging data. */ - +#ifdef HAVE_AS_STABS_DIRECTIVE +/* We only pass a debug option to the assembler if that supports stabs, since + dwarf is not uniformly supported in the assemblers. */ #define ASM_DEBUG_SPEC "%{g*:%{%:debug-level-gt(0):%{!gdwarf*:--gstabs}}}" -#define ASM_DEBUG_OPTION_SPEC "" +#else +#define ASM_DEBUG_SPEC "" +#endif + +#undef ASM_DEBUG_OPTION_SPEC +#define ASM_DEBUG_OPTION_SPEC "" + #define ASM_FINAL_SPEC \ "%{gsplit-dwarf:%ngsplit-dwarf is not supported on this platform} %. */ -/* Prefer DWARF2. */ -#undef PREFERRED_DEBUGGING_TYPE -#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG -#define DARWIN_PREFER_DWARF - -/* Since DWARF2 is default, conditions for running dsymutil are different. */ -#undef DSYMUTIL_SPEC -#define DSYMUTIL_SPEC \ - "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ - %{v} \ - %{g*:%{!gstabs*:%{%:debug-level-gt(0): -idsym}}}\ - %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s|.f|.f90|.f95|.f03|.f77|.for|.F|.F90|.F95|.F03: \ - %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}" - -/* Tell collect2 to run dsymutil for us as necessary. */ -#define COLLECT_RUN_DSYMUTIL 1 - -/* Only ask as for debug data if the debug style is stabs (since as doesn't - yet generate dwarf.) */ - -#undef ASM_DEBUG_SPEC -#define ASM_DEBUG_SPEC "%{g*:%{%:debug-level-gt(0):%{gstabs:--gstabs}}}" - -#undef ASM_DEBUG_OPTION_SPEC -#define ASM_DEBUG_OPTION_SPEC "" - #undef ASM_OUTPUT_ALIGNED_COMMON #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ do { \ -- 2.30.2