On 04/18/2011 10:20 AM, Georg-Johann Lay wrote: > +avr_asm_named_section (const char *name, unsigned int flags, tree decl) > +{ > + if (!avr_need_copy_data_p) > + avr_need_copy_data_p = ((0 == strncmp (name, ".data", 5) > + || 0 == strncmp (name, ".rodata", 7) > + || 0 == strncmp (name, ".gnu.linkonce.", 14))); > + > + if (!avr_need_clear_bss_p) > + avr_need_clear_bss_p = (0 == strncmp (name, ".bss", 4));
Have a look at FLAGS. I expect that you can reference those to categorize the data rather than hard-coding the section names. In particular I believe your ".gnu.linkonce" test is wrong. It's not clear to me what you're looking for wrt "data". Perhaps what you want is if (flags & (SECTION_DEBUG | SECTION_CODE)) ; else if (flags & SECTION_BSS) avr_need_clear_bss_p = true; else avr_need_copy_data_p = true; r~