This is for the google/gcc-4_6 branch only. Fix output_indirect_string so that it does not output strings that have already been written to the .debug_str.dwo section.
This is a backport of part of an unrelated change from upstream 4.7: http://gcc.gnu.org/ml/gcc-cvs/2011-05/msg00130.html Tested: bootstrap, core, mantle, crust (in progress). 2012-03-14 Cary Coutant <ccout...@google.com> * dwarf2out.c (output_indirect_string): Check for DW_FORM_strp instead of presence of label and non-zero refcount. Index: dwarf2out.c =================================================================== --- dwarf2out.c (revision 185269) +++ dwarf2out.c (working copy) @@ -23042,7 +23042,7 @@ output_indirect_string (void **h, void * { struct indirect_string_node *node = (struct indirect_string_node *) *h; - if (node->label && node->refcount) + if (node->form == DW_FORM_strp) { switch_to_section (debug_str_section); ASM_OUTPUT_LABEL (asm_out_file, node->label); -- This patch is available for review at http://codereview.appspot.com/5824050