I committed the patch to google/gcc-4_6 branch. Thanks, -Sri.
* output.h (SECTION_EXCLUDE): New flag for exclude sections. * varasm.c (default_elf_asm_named_section): Add "e" to section flags marked as SECTION_EXCLUDE. * final.c (rest_of_handle_final): Exclude .gnu.callgraph sections. Index: gcc/varasm.c =================================================================== --- gcc/varasm.c (revision 179288) +++ gcc/varasm.c (working copy) @@ -6191,6 +6191,8 @@ if (!(flags & SECTION_DEBUG)) *f++ = 'a'; + if (flags & SECTION_EXCLUDE) + *f++ = 'e'; if (flags & SECTION_WRITE) *f++ = 'w'; if (flags & SECTION_CODE) Index: gcc/output.h =================================================================== --- gcc/output.h (revision 179288) +++ gcc/output.h (working copy) @@ -443,6 +443,7 @@ #define SECTION_COMMON 0x800000 /* contains common data */ #define SECTION_RELRO 0x1000000 /* data is readonly after relocation processing */ #define SECTION_MACH_DEP 0x2000000 /* subsequent bits reserved for target */ +#define SECTION_EXCLUDE 0x4000000 /* discarded by the linker */ Index: gcc/final.c =================================================================== --- gcc/final.c (revision 179288) +++ gcc/final.c (working copy) @@ -4428,7 +4428,7 @@ && cgraph_node (current_function_decl) != NULL && (cgraph_node (current_function_decl))->callees != NULL) { - flags = SECTION_DEBUG; + flags = SECTION_DEBUG | SECTION_EXCLUDE; asprintf (&profile_fnname, ".gnu.callgraph.text.%s", fnname); switch_to_section (get_section (profile_fnname, flags, NULL)); fprintf (asm_out_file, "\t.string \"Function %s\"\n", fnname); On Tue, Sep 27, 2011 at 11:02 AM, Cary Coutant <ccout...@google.com> wrote: >> Index: final.c >> =================================================================== >> --- final.c (revision 179104) >> +++ final.c (working copy) >> @@ -4428,7 +4428,7 @@ rest_of_handle_final (void) >> && cgraph_node (current_function_decl) != NULL >> && (cgraph_node (current_function_decl))->callees != NULL) >> { >> - flags = SECTION_DEBUG; >> + flags = SECTION_DEBUG | SECTION_EXCLUDE; >> asprintf (&profile_fnname, ".gnu.callgraph.text.%s", fnname); >> switch_to_section (get_section (profile_fnname, flags, NULL)); >> fprintf (asm_out_file, "\t.string \"Function %s\"\n", fnname); > > This part is OK for the google/gcc-4_6 branch. > > -cary >