This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, Darwin] Do not run dsymutil automatically, when -save-temps is on the command line.
- From: Iain Sandoe <iain at sandoe dot co dot uk>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Mike Stump <mrs at gcc dot gnu dot org>, Dominique d'Humières <dominiq at lps dot ens dot fr>, FX <fxcoudert at gmail dot com>, Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- Date: Sat, 18 Aug 2018 21:17:21 +0100
- Subject: [PATCH, Darwin] Do not run dsymutil automatically, when -save-temps is on the command line.
Hi Folks,
The point of running dsymutil automatically from collect2 is that it
(collect2, lto-wrapper, etc) might be generating or using compiler
temporary files that will be deleted at the end of the link process.
dsymutil requires that it can see the objects actually used in the link
since it actually picks up the debug info from those, rather than the
linked exe.
When “-save-temps” is given, the objects should be preserved (if they
are not, then that’s a bug) and therefore we don’t need to run dsymutil
automatically.
The debug experience can be better with GDB + the original objects for
some permutations of dsymutil / GDB.
Opinions?
Apply to trunk?
thanks
Iain
gcc/
* config/darwin.h (DSYMUTIL_SPEC): Don’t run dsymutil when
“-save-temps” is given.
* config/darwin9.h: Likewise.
---
gcc/config/darwin.h | 4 ++--
gcc/config/darwin9.h | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index e7cfd71de5..a6e9939d59 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -205,11 +205,11 @@ extern GTY(()) int darwin_ms_struct;
#define DSYMUTIL "\ndsymutil"
#define DSYMUTIL_SPEC \
- "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
+ "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:%{!save-temps*: \
%{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}}}}}}}}}}}"
+ %{gdwarf-2:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}}"
#define LINK_COMMAND_SPEC LINK_COMMAND_SPEC_A DSYMUTIL_SPEC
diff --git a/gcc/config/darwin9.h b/gcc/config/darwin9.h
index 72f593951e..2e193f7513 100644
--- a/gcc/config/darwin9.h
+++ b/gcc/config/darwin9.h
@@ -26,11 +26,11 @@ along with GCC; see the file COPYING3. If not see
/* Since DWARF2 is default, conditions for running dsymutil are different. */
#undef DSYMUTIL_SPEC
#define DSYMUTIL_SPEC \
- "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
+ "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:%{!save-temps*: \
%{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}}}}}}}}}}}"
+ %{g*:%{!gstabs*:%{%:debug-level-gt(0): -dsym}}}}}}}}}}}}"
/* Tell collect2 to run dsymutil for us as necessary. */
#define COLLECT_RUN_DSYMUTIL 1
--
2.17.1