http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46916
--- Comment #19 from Jan Hubicka <hubicka at ucw dot cz> 2010-12-14 13:18:30 UTC --- Hi, does the following patch fix the problem? darwin_text_section no longer needs to care about hot/cold code since this is already done in darwin_function_section. In fact you might additionally consider putting return (DECL_WEAK (decl) ? darwin_sections[text_coal_section] : text_section); into places returning NULL in darwin_function_section, removing case SECCAT_TEXT from machopic_select_section undefining USE_SELECT_SECTION_FOR_FUNCTIONS as suggested by rth as cleanup. Honza Index: opts.c =================================================================== --- opts.c (revision 167794) +++ opts.c (working copy) @@ -738,6 +738,9 @@ finish_options (struct gcc_options *opts opts->x_flag_reorder_blocks = 1; } + if (opts->x_flag_reorder_blocks_and_partition) + opts->x_flag_reorder_blocks = 1; + /* If the target requested unwind info, then turn off the partitioning optimization with a different message. Likewise, if the target does not support named sections. */ Index: config/darwin.c =================================================================== --- config/darwin.c (revision 167794) +++ config/darwin.c (working copy) @@ -1145,16 +1145,11 @@ darwin_mark_decl_preserved (const char * } static section * -darwin_text_section (int reloc, int weak) +darwin_text_section (int weak) { - if (reloc) - return (weak - ? darwin_sections[text_unlikely_coal_section] - : unlikely_text_section ()); - else - return (weak - ? darwin_sections[text_coal_section] - : text_section); + return (weak + ? darwin_sections[text_coal_section] + : text_section); } static section *