http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46916
--- Comment #57 from Iain Sandoe <iains at gcc dot gnu.org> 2010-12-15 13:25:07 UTC --- (In reply to comment #56) > I wonder why we need to add those +DEF_SECTION fields? > I think the infinite recursion problem should be fixed by dropping the whole > machinery on selecting sections. nothing to do with the recursion - that's solved early in this thread --- -- we need a coalesced section to match each non-coalesced one. since "darwin_function_section()" is called quite frequently, it seemed more efficient to pre-declare the sections rather than keep finding them from matching against a named section. [ the key change is that there need to be coalesced sections for the DECL_WEAK () -- I am not strongly saying the sections need to be pre-declared - if you think that named sections would be better] we would need : if (exit && freq != NODE_FREQUENCY_UNLIKELY_EXECUTED) return (DECL_WEAK (decl)) ? get_named_text_section (decl, "__TEXT,__exit_coal,coalesced,pure_instructions", "_exit_coal"); : get_named_text_section (decl, "__TEXT,__exit,regular,pure_instructions", "_exit"); .. or some more efficient equivalent. > With the darwin bits alone, do we get clear run except for the two partition > tests? tests are running ... looking OK so far, ... but we have a serious problem with dsymutil && || debug for "-O3 -g". Still needs examining as to why...