Add -f[no-]skeleton-type-units flag to control whether GCC generates skeleton type units.
This patch is for the google/gcc-4_8 branch. I will hold off sending it upstream until we're certain that we will be disabling skeleton type units, at which point, I'll just remove the code instead of making it conditional on this flag. OK to commit? -cary 2014-05-12 Cary Coutant <ccout...@google.com> gcc/ * dwarf2out.c (output_skeleton_debug_sections): Check -fskeleton-type-units flag. (output_comdat_type_unit): Likewise. (dwarf2out_finish): Likewise. * common.opt (fskeleton-type-units): New option. Index: dwarf2out.c =================================================================== --- dwarf2out.c (revision 208284) +++ dwarf2out.c (working copy) @@ -8978,7 +8978,7 @@ output_skeleton_debug_sections (dw_die_r ASM_OUTPUT_LABEL (asm_out_file, debug_skeleton_abbrev_section_label); output_die_abbrevs (SKELETON_COMP_DIE_ABBREV, comp_unit); - if (use_debug_types) + if (use_debug_types && flag_skeleton_type_units) output_die_abbrevs (SKELETON_TYPE_DIE_ABBREV, get_skeleton_type_unit ()); dw2_asm_output_data (1, 0, "end of skeleton .debug_abbrev"); @@ -9043,7 +9043,7 @@ output_comdat_type_unit (comdat_type_nod unmark_dies (node->root_die); #if defined (OBJECT_FORMAT_ELF) - if (dwarf_split_debug_info) + if (dwarf_split_debug_info && flag_skeleton_type_units) { /* Produce the skeleton type-unit header. */ const char *secname = ".debug_types"; @@ -23930,7 +23930,8 @@ dwarf2out_finish (const char *filename) add_top_level_skeleton_die_attrs (main_comp_unit_die); add_AT_lineptr (main_comp_unit_die, DW_AT_GNU_addr_base, debug_addr_section_label); - (void) get_skeleton_type_unit (); + if (flag_skeleton_type_units) + (void) get_skeleton_type_unit (); htab_traverse_noresize (debug_str_hash, index_string, &index); } Index: common.opt =================================================================== --- common.opt (revision 208284) +++ common.opt (working copy) @@ -1348,6 +1348,10 @@ floop-nest-optimize Common Report Var(flag_loop_optimize_isl) Optimization Enable the ISL based loop nest optimizer +fskeleton-type-units +Common Report Var(flag_skeleton_type_units) Init(1) +Output skeleton .debug_types sections when using -gsplit-dwarf. + fstrict-volatile-bitfields Common Report Var(flag_strict_volatile_bitfields) Init(-1) Force bitfield accesses to match their type width