1 /* Target definitions for x86_64 running Darwin with a 64b host supporting a 2 32b multilib. 3 Copyright (C) 2006-2019 Free Software Foundation, Inc. 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 10 the Free Software Foundation; either version 3, or (at your option) 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 19 along with GCC; see the file COPYING3. If not see 20 <http://www.gnu.org/licenses/>. */ 21 22 #undef DARWIN_ARCH_SPEC 23 #define DARWIN_ARCH_SPEC "%{m32:i386;:x86_64}" 24 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 51 #undef DARWIN_SUBARCH_SPEC 52 #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC 53 54 #undef SUBTARGET_EXTRA_SPECS 55 #define SUBTARGET_EXTRA_SPECS \ 56 DARWIN_EXTRA_SPECS \ 57 { "darwin_arch", DARWIN_ARCH_SPEC }, \ 58 { "darwin_crt2", "" }, \ 59 { "darwin_subarch", DARWIN_SUBARCH_SPEC }, 60