/* Target definitions for Darwin (Mac OS X) systems. Copyright (C) 1989, 1990, 1991, 1992, 1993, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Under Section 7 of GPL version 3, you are granted additional permissions described in the GCC Runtime Library Exception, version 3.1, as published by the Free Software Foundation. You should have received a copy of the GNU General Public License and a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ #ifndef CONFIG_DARWIN_H #define CONFIG_DARWIN_H /* The definitions in this file are common to all processor types running Darwin, which is the kernel for Mac OS X. Darwin is basically a BSD user layer laid over a Mach kernel, then evolved for many years (at NeXT) in parallel with other Unix systems. So while the runtime is a somewhat idiosyncratic Mach-based thing, other definitions look like they would for a BSD variant. */ /* Although NeXT ran on many different architectures, as of Jan 2001 the only supported Darwin targets are PowerPC and x86. */ /* One of Darwin's NeXT legacies is the Mach-O format, which is partly like a.out and partly like COFF, with additional features like multi-architecture binary support. */ #define OBJECT_FORMAT_MACHO /* Don't assume anything about the header files. */ #define NO_IMPLICIT_EXTERN_C /* Suppress g++ attempt to link in the math library automatically. */ #define MATH_LIBRARY "" /* We have atexit. */ #define HAVE_ATEXIT /* Define an empty body for the function do_global_dtors() in libgcc2.c. */ #define DO_GLOBAL_DTORS_BODY /* The string value for __SIZE_TYPE__. */ #ifndef SIZE_TYPE #define SIZE_TYPE "long unsigned int" #endif /* Type used for ptrdiff_t, as a string used in a declaration. */ #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "int" /* wchar_t is int. */ #undef WCHAR_TYPE #define WCHAR_TYPE "int" #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE 32 /* Default to using the NeXT-style runtime, since that's what is pre-installed on Darwin systems. */ #define NEXT_OBJC_RUNTIME /* Don't default to pcc-struct-return, because gcc is the only compiler, and we want to retain compatibility with older gcc versions. */ #undef DEFAULT_PCC_STRUCT_RETURN #define DEFAULT_PCC_STRUCT_RETURN 0 /* True if pragma ms_struct is in effect. */ extern GTY(()) int darwin_ms_struct; /* This table intercepts weirdo options whose names would interfere with normal driver conventions, and either translates them into standardly-named options, or adds a 'Z' so that they can get to specs processing without interference. Do not expand a linker option to "-Xlinker -