aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2019-12-14 08:25:02 +0000
committerIain Sandoe <iains@gcc.gnu.org>2019-12-14 08:25:02 +0000
commit4e62faf211557e6b469df749cc9612b6289f4f7e (patch)
treeffd802740d272e0812b8f21184ee7477b8991c4a
parentef29b12cfbb4979a89b3cbadbf485a77c8fd8fce (diff)
downloadgcc-4e62faf211557e6b469df749cc9612b6289f4f7e.zip
gcc-4e62faf211557e6b469df749cc9612b6289f4f7e.tar.gz
gcc-4e62faf211557e6b469df749cc9612b6289f4f7e.tar.bz2
[Darwin, PPC] Use Darwin9 bundle header for Rosetta builds.
On Darwin10 it's possible to make a 32b PPC build using the 'Rosetta' emulator. However, these builds need to make use of Darwin9 crts (for exes, dylibs and bundles). This adds the change to cater for bundles. gcc/ChangeLog: 2019-12-14 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.h (DARWIN_EXTRA_SPECS): Add new bundle spec. (DARWIN_BUNDLE1_SPEC): New. (STARTFILE_SPEC): Use darwin bundle spec. * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New. (DARWIN_DYLIB1_SPEC): Delete duplicate. From-SVN: r279393
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/darwin.h11
-rw-r--r--gcc/config/rs6000/darwin.h14
3 files changed, 22 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5073ffa..b50155d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2019-12-14 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/darwin.h (DARWIN_EXTRA_SPECS): Add new
+ bundle spec. (DARWIN_BUNDLE1_SPEC): New.
+ (STARTFILE_SPEC): Use darwin bundle spec.
+ * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
+ (DARWIN_DYLIB1_SPEC): Delete duplicate.
+
2019-12-13 Martin Sebor <msebor@redhat.com>
PR middle-end/91582
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 8eb8edf..546336e 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -401,9 +401,7 @@ extern GTY(()) int darwin_ms_struct;
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{Zdynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}} \
- %{!Zdynamiclib:%{Zbundle:%{!static: \
- %:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o) \
- %{fgnu-tm: -lcrttms.o}}} \
+ %{!Zdynamiclib:%{Zbundle:%(darwin_bundle1)} \
%{!Zbundle:%{pg:%{static:-lgcrt0.o} \
%{!static:%{object:-lgcrt0.o} \
%{!object:%{preload:-lgcrt0.o} \
@@ -425,7 +423,8 @@ extern GTY(()) int darwin_ms_struct;
{ "darwin_crt1", DARWIN_CRT1_SPEC }, \
{ "darwin_crt2", DARWIN_CRT2_SPEC }, \
{ "darwin_crt3", DARWIN_CRT3_SPEC }, \
- { "darwin_dylib1", DARWIN_DYLIB1_SPEC },
+ { "darwin_dylib1", DARWIN_DYLIB1_SPEC }, \
+ { "darwin_bundle1", DARWIN_BUNDLE1_SPEC },
#define DARWIN_CRT1_SPEC \
"%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o) \
@@ -447,6 +446,10 @@ extern GTY(()) int darwin_ms_struct;
"%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o) \
%:version-compare(>< 10.5 10.6 mmacosx-version-min= -ldylib1.10.5.o)"
+#define DARWIN_BUNDLE1_SPEC \
+"%{!static:%:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o) \
+ %{fgnu-tm: -lcrttms.o}}"
+
#ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
/* Emit macosx version (but only major). */
#define ASM_MMACOSX_VERSION_MIN_SPEC \
diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h
index 8cf25b0..5f5a6ca 100644
--- a/gcc/config/rs6000/darwin.h
+++ b/gcc/config/rs6000/darwin.h
@@ -173,12 +173,18 @@
%:version-compare(!> 10.4 mmacosx-version-min= crt3_2.o%s) \
}}"
-/* We need to jam the dylib1 to 10.5 for 10.6 (Rosetta) use. */
+/* As for crt1, we need to force the dylib crt for 10.6. */
#undef DARWIN_DYLIB1_SPEC
#define DARWIN_DYLIB1_SPEC \
"%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o) \
%:version-compare(>< 10.5 10.7 mmacosx-version-min= -ldylib1.10.5.o)"
+/* Likewise, the bundle crt. */
+#undef DARWIN_BUNDLE1_SPEC
+#define DARWIN_BUNDLE1_SPEC \
+"%{!static:%:version-compare(< 10.7 mmacosx-version-min= -lbundle1.o) \
+ %{fgnu-tm: -lcrttms.o}}"
+
/* The PPC regs save/restore functions are leaves and could, conceivably
be used by the tm destructor. */
#undef ENDFILE_SPEC
@@ -191,12 +197,6 @@
{ "darwin_crt2", DARWIN_CRT2_SPEC }, \
{ "darwin_subarch", DARWIN_SUBARCH_SPEC },
-/* We need to jam the dylib crt to 10.5 for 10.6 (Rosetta) use. */
-#undef DARWIN_DYLIB1_SPEC
-#define DARWIN_DYLIB1_SPEC \
- "%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o) \
- %:version-compare(>< 10.5 10.7 mmacosx-version-min= -ldylib1.10.5.o)"
-
/* Output a .machine directive. */
#undef TARGET_ASM_FILE_START
#define TARGET_ASM_FILE_START rs6000_darwin_file_start