Hi.
+/* To track if code will use .bss and/or .data */ +static int avr_need_clear_bss_p = 0; +static int avr_need_copy_data_p = 0;
Change type avr_need_clear_bss_p and avr_need_copy_data_p vars to bool.
-#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \ -do { \ - fputs ("\t.comm ", (STREAM)); \ - assemble_name ((STREAM), (NAME)); \ - fprintf ((STREAM), ",%lu,1\n", (unsigned long)(SIZE)); \ -} while (0) +#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \ + avr_asm_output_common (STREAM, NAME, SIZE, ROUNDED)
Use ASM_OUTPUT_ALIGNED_DECL_COMMON macro instead of ASM_OUTPUT_COMMON.
-#define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED) \ -do { \ - fputs ("\t.lcomm ", (STREAM)); \ - assemble_name ((STREAM), (NAME)); \ - fprintf ((STREAM), ",%d\n", (int)(SIZE)); \ -} while (0) +#define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED) \ + avr_asm_output_local (STREAM, NAME, SIZE, ROUNDED)
Use ASM_OUTPUT_ALIGNED_DECL_LOCAL macro instead of ASM_OUTPUT_LOCAL. Anatoly.