On Wed, May 06, 2015 at 03:59:33PM -0700, Segher Boessenkool wrote: > Currently GCC does not put mergeable read-only data in a per-function > section, so the -gc-sections linker option does not do much for such > data. Fix that.
Dunno if it is a good idea, but... > diff --git a/gcc/varasm.c b/gcc/varasm.c > index 62d5163..d8f077d 100644 > --- a/gcc/varasm.c > +++ b/gcc/varasm.c > @@ -783,6 +783,16 @@ default_no_function_rodata_section (tree decl > ATTRIBUTE_UNUSED) > return readonly_data_section; > } > > +const char * > +function_mergeable_rodata_prefix (void) This function needs a comment. > +{ > + section *s = targetm.asm_out.function_rodata_section > (current_function_decl); > + if (SECTION_STYLE (s) == SECTION_NAMED) > + return s->named.name; > + else > + return targetm.asm_out.mergeable_rodata_prefix; else is wrongly formatted. Marek