From ae0698035be607578e73afab669c3255bf52a6e0 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 12 Mar 2007 11:15:51 -0700 Subject: [PATCH] alpha.c (alpha_elf_section_type_flags): New. * config/alpha/alpha.c (alpha_elf_section_type_flags): New. (TARGET_SECTION_TYPE_FLAGS): New. From-SVN: r122850 --- gcc/ChangeLog | 5 +++++ gcc/config/alpha/alpha.c | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 94c7bdf892c..0ce27464f37 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-03-12 Richard Henderson + + * config/alpha/alpha.c (alpha_elf_section_type_flags): New. + (TARGET_SECTION_TYPE_FLAGS): New. + 2007-03-12 Richard Henderson * config/darwin.c (machopic_reloc_rw_mask): New. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index e6ea03f1b49..817aa479479 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -9343,6 +9343,22 @@ alpha_elf_select_rtx_section (enum machine_mode mode, rtx x, return default_elf_select_rtx_section (mode, x, align); } +static unsigned int +alpha_elf_section_type_flags (tree decl, const char *name, int reloc) +{ + unsigned int flags = 0; + + if (strcmp (name, ".sdata") == 0 + || strncmp (name, ".sdata.", 7) == 0 + || strncmp (name, ".gnu.linkonce.s.", 16) == 0 + || strcmp (name, ".sbss") == 0 + || strncmp (name, ".sbss.", 6) == 0 + || strncmp (name, ".gnu.linkonce.sb.", 17) == 0) + flags = SECTION_SMALL; + + flags |= default_section_type_flags (decl, name, reloc); + return flags; +} #endif /* OBJECT_FORMAT_ELF */ /* Structure to collect function names for final output in link section. */ @@ -10580,6 +10596,8 @@ alpha_init_libfuncs (void) #define TARGET_ASM_RELOC_RW_MASK alpha_elf_reloc_rw_mask #undef TARGET_ASM_SELECT_RTX_SECTION #define TARGET_ASM_SELECT_RTX_SECTION alpha_elf_select_rtx_section +#undef TARGET_SECTION_TYPE_FLAGS +#define TARGET_SECTION_TYPE_FLAGS alpha_elf_section_type_flags #endif #undef TARGET_ASM_FUNCTION_END_PROLOGUE