summaryrefslogtreecommitdiff
path: root/gcc/config/darwin.h
diff options
context:
space:
mode:
authorIain Sandoe <iains@gcc.gnu.org>2010-11-23 15:42:41 +0000
committerIain Sandoe <iains@gcc.gnu.org>2010-11-23 15:42:41 +0000
commit7f814c0bb0216cf3c6929ae28bffcc4620ea2fef (patch)
tree4043328cc76caf50ecd8b45580da613d43bd65cb /gcc/config/darwin.h
parent90eb3e33b896f57ec061b2404eab6de9e984d7a2 (diff)
downloadgcc-7f814c0bb0216cf3c6929ae28bffcc4620ea2fef.tar.gz
update darwin to use link_gcc_c_sequence.
gcc: * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence). LINK_GCC_C_SEQUENCE_SPEC: Define new macro. From-SVN: r167084
Diffstat (limited to 'gcc/config/darwin.h')
-rw-r--r--gcc/config/darwin.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 086e428f2d4..b93f5884ac5 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -160,10 +160,9 @@ extern GTY(()) int darwin_ms_struct;
" %{pthread:-D_REENTRANT}"
/* This is mostly a clone of the standard LINK_COMMAND_SPEC, plus
- precomp, libtool, and fat build additions. Also we
- don't specify a second %G after %L because libSystem is
- self-contained and doesn't need to link against libgcc.a. */
-/* In general, random Darwin linker flags should go into LINK_SPEC
+ precomp, libtool, and fat build additions.
+
+ In general, random Darwin linker flags should go into LINK_SPEC
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. */
@@ -180,10 +179,12 @@ extern GTY(()) int darwin_ms_struct;
%{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \
%{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"
+ %{!nostdlib:%{!nodefaultlibs:\
+ %(link_ssp) %(link_gcc_c_sequence)\
+ }}\
+ %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}"
-#define DSYMUTIL "dsymutil"
+#define DSYMUTIL "\ndsymutil"
#define DSYMUTIL_SPEC \
"%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
@@ -192,6 +193,11 @@ extern GTY(()) int darwin_ms_struct;
#define LINK_COMMAND_SPEC LINK_COMMAND_SPEC_A DSYMUTIL_SPEC
+/* We only want one instance of %G, since libSystem (Darwin's -lc) does not depend
+ on libgcc. */
+#undef LINK_GCC_C_SEQUENCE_SPEC
+#define LINK_GCC_C_SEQUENCE_SPEC "%G %L"
+
#ifdef TARGET_SYSTEM_ROOT
#define LINK_SYSROOT_SPEC \
"%{isysroot*:-syslibroot %*;:-syslibroot " TARGET_SYSTEM_ROOT "}"