X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fconfig%2Fdarwin.h;h=e3f69601d9b8e4af2c194f89b3e33a374a2deb7e;hb=05caec57fee5b8aa249b286d35b4775f764ab7d6;hp=ba617401ff37c515eaab0344806c95620a436df0;hpb=a375de9be5e48418de612760898b72795a684288;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index ba617401ff3..e3f69601d9b 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -1,6 +1,6 @@ /* 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, 2010 + 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Contributed by Apple Computer Inc. @@ -140,6 +140,21 @@ extern GTY(()) int darwin_ms_struct; } while (0) #define SUBTARGET_C_COMMON_OVERRIDE_OPTIONS do { \ + /* Unless set, force ABI=2 for NeXT and m64, 0 otherwise. */ \ + if (!global_options_set.x_flag_objc_abi) \ + global_options.x_flag_objc_abi \ + = (flag_next_runtime && TARGET_64BIT) ? 2 : 0; \ + /* Objective-C family ABI 2 is only valid for next/m64 at present. */ \ + if (global_options_set.x_flag_objc_abi && flag_next_runtime) \ + if (TARGET_64BIT && global_options.x_flag_objc_abi < 2) \ + error_at (UNKNOWN_LOCATION, "%<-fobjc-abi-version%> >= 2 is only" \ + " supported on %<-m64%> targets for" \ + " %<-fnext-runtime%>"); \ + /* Sort out ObjC exceptions: If the runtime is NeXT we default to \ + sjlj for m32 only. */ \ + if (!global_options_set.x_flag_objc_sjlj_exceptions) \ + global_options.x_flag_objc_sjlj_exceptions = \ + flag_next_runtime && !TARGET_64BIT; \ if (flag_mkernel || flag_apple_kext) \ { \ if (flag_use_cxa_atexit == 2) \ @@ -594,7 +609,7 @@ int darwin_label_is_anonymous_local_objc_name (const char *name); } \ else if (xname[0] == '+' || xname[0] == '-') \ fprintf (FILE, "\"%s\"", xname); \ - else if (darwin_label_is_anonymous_local_objc_name (xname)) \ + else if (darwin_label_is_anonymous_local_objc_name (xname)) \ fprintf (FILE, "L%s", xname); \ else if (!strncmp (xname, ".objc_class_name_", 17)) \ fprintf (FILE, "%s", xname); \ @@ -646,11 +661,6 @@ int darwin_label_is_anonymous_local_objc_name (const char *name); /* The generic version, archs should over-ride where required. */ #define MACHOPIC_NL_SYMBOL_PTR_SECTION ".non_lazy_symbol_pointer" -/* Private flag applied to disable section-anchors in a particular section. - This needs to be kept in sync with the flags used by varasm.c (defined in - output.h). */ -#define SECTION_NO_ANCHOR 0x2000000 - /* Declare the section variables. */ #ifndef USED_FOR_TARGET enum darwin_section_enum { @@ -664,10 +674,14 @@ extern GTY(()) section * darwin_sections[NUM_DARWIN_SECTIONS]; #undef TARGET_ASM_SELECT_SECTION #define TARGET_ASM_SELECT_SECTION machopic_select_section -#define USE_SELECT_SECTION_FOR_FUNCTIONS + #undef TARGET_ASM_FUNCTION_SECTION #define TARGET_ASM_FUNCTION_SECTION darwin_function_section +#undef TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS +#define TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS \ + darwin_function_switched_text_sections + #undef TARGET_ASM_SELECT_RTX_SECTION #define TARGET_ASM_SELECT_RTX_SECTION machopic_select_rtx_section #undef TARGET_ASM_UNIQUE_SECTION @@ -712,11 +726,12 @@ extern GTY(()) section * darwin_sections[NUM_DARWIN_SECTIONS]; /* Extra attributes for Darwin. */ #define SUBTARGET_ATTRIBUTE_TABLE \ - /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */ \ + /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler, \ + affects_type_identity } */ \ { "apple_kext_compatibility", 0, 0, false, true, false, \ - darwin_handle_kext_attribute }, \ + darwin_handle_kext_attribute, false }, \ { "weak_import", 0, 0, true, false, false, \ - darwin_handle_weak_import_attribute } + darwin_handle_weak_import_attribute, false } #undef ASM_GENERATE_INTERNAL_LABEL #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \ @@ -963,10 +978,11 @@ __enable_execute_stack (void *addr) \ #define TARGET_HAS_TARGETCM 1 -extern void darwin_driver_init (unsigned int *decoded_options_count, - struct cl_decoded_option **decoded_options); +#ifndef USED_FOR_TARGET +extern void darwin_driver_init (unsigned int *,struct cl_decoded_option **); #define GCC_DRIVER_HOST_INITIALIZATION \ darwin_driver_init (&decoded_options_count, &decoded_options) +#endif /* The Apple assembler and linker do not support constructor priorities. */ #undef SUPPORTS_INIT_PRIORITY