summaryrefslogtreecommitdiff
path: root/gcc/config/darwin-sections.def
diff options
context:
space:
mode:
authorIain Sandoe <iains@gcc.gnu.org>2010-10-22 10:28:57 +0000
committerIain Sandoe <iains@gcc.gnu.org>2010-10-22 10:28:57 +0000
commit2670598830de0d9a1a65724d15dd428eae38e6f2 (patch)
tree930cb5a100d0242c1b4f82c25d186b96318cd1a6 /gcc/config/darwin-sections.def
parent5e5db3b4b48ede7d0d1815ec2126b669affeda96 (diff)
CFStrings for Darwin.
gcc: Based on the CFString implementation in FSF apple/trunk branch. * target.def (objc_construct_string): New Hook. * doc/tm.texi (objc_construct_string): Document. * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New. * config/t-darwin: Amend build rules for darwin.o. * config/darwin.opt: Add cfstrings flags. * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__. (darwin_objc_construct_string): New. * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define. * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS. * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype. (darwin_fold_builtin): Likewise. (darwin_build_constant_cfstring): Likewise. (darwin_objc_construct_string): Likewise. (darwin_cfstring_p): Likewise. (darwin_enter_string_into_cfstring_table): Likewise. * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString. * config/darwin.c (darwin_running_cxx): New var. (machopic_select_section): Return cfstring_constant_object_section. (darwin_override_options): Set darwin_running_cxx. (add_builtin_field_decl): New. (darwin_init_cfstring_builtins): New. (darwin_build_constant_cfstring): New. (darwin_fold_builtin): New. (cfstring_hash): New. (cfstring_eq): New. (darwin_enter_string_into_cfstring_table): New. * config/darwin-sections.def (cfstring_constant_object_section): New. * config/darwin.h (TARGET_FOLD_BUILTIN): Define. (TARGET_OBJC_CONSTRUCT_STRING): Define. gcc/objc: Based on the CFString implementation in FSF apple/trunk branch. * objc/objc-act.c (objc_build_string_object): Handle CFStrings. From-SVN: r165820
Diffstat (limited to 'gcc/config/darwin-sections.def')
-rw-r--r--gcc/config/darwin-sections.def3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/darwin-sections.def b/gcc/config/darwin-sections.def
index a8d2d1ef2b2..a7fa968279a 100644
--- a/gcc/config/darwin-sections.def
+++ b/gcc/config/darwin-sections.def
@@ -33,6 +33,9 @@ DEF_SECTION (cstring_section, SECTION_MERGE | SECTION_STRINGS, ".cstring", 0)
DEF_SECTION (literal4_section, SECTION_MERGE, ".literal4", 0)
DEF_SECTION (literal8_section, SECTION_MERGE, ".literal8", 0)
DEF_SECTION (literal16_section, SECTION_MERGE, ".literal16", 0)
+/* Unlike constant NSStrings, constant CFStrings do not live in the __OBJC segment
+ since they may also occur in pure C or C++ programs. */
+DEF_SECTION (cfstring_constant_object_section, 0, ".section __DATA, __cfstring", 0)
DEF_SECTION (constructor_section, 0, ".constructor", 0)
DEF_SECTION (mod_init_section, 0, ".mod_init_func", 0)
DEF_SECTION (mod_term_section, 0, ".mod_term_func", 0)