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