diff options
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/darwin.h | 17 | ||||
-rw-r--r-- | gcc/config/darwin9.h | 21 |
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 |