summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/darwin.h17
-rw-r--r--gcc/config/darwin9.h21
3 files changed, 26 insertions, 21 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c322ff3c5c7..e026ca1d1d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,14 @@
2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
+ * config/darwin.h (LINK_COMMAND_SPEC): Split into...
+ (LINK_COMMAND_SPEC_A): New.
+ (DSYMUTIL): New.
+ (DSYMUTIL_SPEC): New.
+ * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
+ (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
+
+2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
+
* calls.c (load_register_parameters): Move check for zero
sized items so that only the call to
mem_overlaps_already_clobbered_arg_p () is protected.
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 99d99288152..066d0922d75 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -266,8 +266,9 @@ extern GTY(()) int darwin_ms_struct;
instead of LINK_COMMAND_SPEC. The command spec is better for
specifying the handling of options understood by generic Unix
linkers, and for positional arguments like libraries. */
-#define LINK_COMMAND_SPEC "\
-%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
+
+#define LINK_COMMAND_SPEC_A \
+ "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
%(linker) %l %X %{d} %{s} %{t} %{Z} %{u*} \
%{A} %{e*} %{m} %{r} %{x} \
%{o*}%{!o:-o a.out} \
@@ -277,10 +278,16 @@ extern GTY(()) int darwin_ms_struct;
%{fopenmp|ftree-parallelize-loops=*: \
%{static|static-libgcc|static-libstdc++|static-libgfortran: libgomp.a%s; : -lgomp } } \
%{!nostdlib:%{!nodefaultlibs: %(link_ssp) %G %L }} \
- %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}\n\
-%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
+ %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}\n"
+
+#define DSYMUTIL "dsymutil"
+
+#define DSYMUTIL_SPEC \
+ "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
%{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \
- %{gdwarf-2:%{!gstabs*:%{!g0: dsymutil %{o*:%*}%{!o:a.out}}}}}}}}}}}}"
+ %{gdwarf-2:%{!gstabs*:%{!g0: " DSYMUTIL " %{o*:%*}%{!o:a.out}}}}}}}}}}}}"
+
+#define LINK_COMMAND_SPEC LINK_COMMAND_SPEC_A DSYMUTIL_SPEC
#ifdef TARGET_SYSTEM_ROOT
#define LINK_SYSROOT_SPEC \
diff --git a/gcc/config/darwin9.h b/gcc/config/darwin9.h
index f1527105dee..c9f33ea739b 100644
--- a/gcc/config/darwin9.h
+++ b/gcc/config/darwin9.h
@@ -24,22 +24,11 @@ along with GCC; see the file COPYING3. If not see
#define DARWIN_PREFER_DWARF
/* Since DWARF2 is default, conditions for running dsymutil are different. */
-#undef LINK_COMMAND_SPEC
-#define LINK_COMMAND_SPEC "\
-%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
- %(linker) %l %X %{d} %{s} %{t} %{Z} \
- %{A} %{e*} %{m} %{r} %{x} \
- %{o*}%{!o:-o a.out} \
- %{!A:%{!nostdlib:%{!nostartfiles:%S}}} \
- %{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \
- %{flto} %{fwhopr} \
- %{fopenmp|ftree-parallelize-loops=*: \
- %{static|static-libgcc|static-libstdc++|static-libgfortran: libgomp.a%s; : -lgomp } } \
- %{!nostdlib:%{!nodefaultlibs: %(link_ssp) %G %L }} \
- %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}\n\
-%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
- %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \
- %{g*:%{!gstabs*:%{!g0: dsymutil %{o*:%*}%{!o:a.out}}}}}}}}}}}}"
+#undef DSYMUTIL_SPEC
+#define DSYMUTIL_SPEC \
+ "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
+ %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm|.s: \
+ %{g*:%{!gstabs*:%{!g0: " DSYMUTIL " %{o*:%*}%{!o:a.out}}}}}}}}}}}}"
/* libSystem contains unwind information for signal frames. */
#define DARWIN_LIBSYSTEM_HAS_UNWIND