diff --git a/gcc/ChangeLog b/gcc/ChangeLog index de0dd70eb14..94c7bdf892c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-03-12 Richard Henderson + + * config/darwin.c (machopic_reloc_rw_mask): New. + * config/darwin-protos.h (machopic_reloc_rw_mask): Declare. + * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New. + 2007-03-12 Mark Mitchell * cppdefault.c (cpp_EXEC_PREFIX): New variable. diff --git a/gcc/config/darwin-protos.h b/gcc/config/darwin-protos.h index b28317b8b77..8981eded88b 100644 --- a/gcc/config/darwin-protos.h +++ b/gcc/config/darwin-protos.h @@ -52,6 +52,7 @@ extern void darwin_set_default_type_attributes (tree); extern void machopic_finish (FILE *); +extern int machopic_reloc_rw_mask (void); extern section *machopic_select_section (tree, int, unsigned HOST_WIDE_INT); extern section *machopic_select_rtx_section (enum machine_mode, rtx, unsigned HOST_WIDE_INT); diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 5796ace485d..507b1b47a3f 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -1172,6 +1172,12 @@ darwin_mergeable_constant_section (tree exp, return readonly_data_section; } +int +machopic_reloc_rw_mask (void) +{ + return MACHOPIC_INDIRECT ? 3 : 0; +} + section * machopic_select_section (tree decl, int reloc, diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index efe1ef0e521..07cc7767a65 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -701,6 +701,8 @@ extern GTY(()) section * darwin_sections[NUM_DARWIN_SECTIONS]; #define TARGET_ASM_UNIQUE_SECTION darwin_unique_section #undef TARGET_ASM_FUNCTION_RODATA_SECTION #define TARGET_ASM_FUNCTION_RODATA_SECTION default_no_function_rodata_section +#undef TARGET_ASM_RELOC_RW_MASK +#define TARGET_ASM_RELOC_RW_MASK machopic_reloc_rw_mask #define ASM_DECLARE_UNRESOLVED_REFERENCE(FILE,NAME) \