]>
Commit | Line | Data |
---|---|---|
c2ff7104 IS |
1 | /* Target definitions for x86_64 running Darwin with a 64b host supporting a |
2 | 32b multilib. | |
99dee823 | 3 | Copyright (C) 2006-2021 Free Software Foundation, Inc. |
9519e677 EC |
4 | Contributed by Apple Computer Inc. |
5 | ||
6 | This file is part of GCC. | |
7 | ||
8 | GCC is free software; you can redistribute it and/or modify | |
9 | it under the terms of the GNU General Public License as published by | |
2f83c7d6 | 10 | the Free Software Foundation; either version 3, or (at your option) |
9519e677 EC |
11 | any later version. |
12 | ||
13 | GCC is distributed in the hope that it will be useful, | |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
19 | along with GCC; see the file COPYING3. If not see |
20 | <http://www.gnu.org/licenses/>. */ | |
9519e677 | 21 | |
9519e677 EC |
22 | #undef DARWIN_ARCH_SPEC |
23 | #define DARWIN_ARCH_SPEC "%{m32:i386;:x86_64}" | |
24 | ||
7b607822 IS |
25 | /* WORKAROUND pr80556: |
26 | For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected | |
27 | from libSystem). This doesn't use the keymgr (see keymgr.c) and therefore | |
28 | the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not | |
29 | updated to include new images, and might not even be valid for a single | |
30 | image. | |
31 | Therefore, for 64b exes at least, we must use the libunwind implementation, | |
32 | even when static-libgcc is specified. We put libSystem first so that | |
33 | unwinder symbols are satisfied from there. */ | |
34 | #undef REAL_LIBGCC_SPEC | |
35 | #define REAL_LIBGCC_SPEC \ | |
36 | "%{static-libgcc|static: \ | |
37 | %{!m32:%:version-compare(>= 10.6 mmacosx-version-min= -lSystem)} \ | |
38 | -lgcc_eh -lgcc; \ | |
39 | shared-libgcc|fexceptions|fgnu-runtime: \ | |
40 | %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \ | |
41 | %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ | |
42 | %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ | |
43 | %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ | |
44 | -lgcc ; \ | |
45 | :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ | |
46 | %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ | |
47 | %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ | |
48 | %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ | |
49 | -lgcc }" | |
50 | ||
9519e677 EC |
51 | #undef DARWIN_SUBARCH_SPEC |
52 | #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC | |
53 | ||
54 | #undef SUBTARGET_EXTRA_SPECS | |
55 | #define SUBTARGET_EXTRA_SPECS \ | |
742163c0 | 56 | DARWIN_EXTRA_SPECS \ |
9519e677 EC |
57 | { "darwin_arch", DARWIN_ARCH_SPEC }, \ |
58 | { "darwin_crt2", "" }, \ | |
59 | { "darwin_subarch", DARWIN_SUBARCH_SPEC }, |