--- binutils-2.14/gas/as.c 2003-04-08 14:47:07.000000000 +0200 +++ binutils-2.14-patched/gas/as.c 2013-04-24 18:38:14.000000000 +0200 @@ -88,6 +88,9 @@ #ifdef BFD_ASSEMBLER segT reg_section, expr_section; segT text_section, data_section, bss_section; +#ifdef OBJ_AMIGAHUNK +segT data_chip_section, bss_chip_section; +#endif #endif /* The default obstack chunk size. If we set this to zero, the @@ -1044,6 +1047,10 @@ text_section = subseg_new (TEXT_SECTION_NAME, 0); data_section = subseg_new (DATA_SECTION_NAME, 0); bss_section = subseg_new (BSS_SECTION_NAME, 0); +#ifdef OBJ_AMIGAHUNK + data_chip_section = subseg_new (".data_chip", 0); + bss_chip_section = subseg_new (".bss_chip", 0); +#endif /* @@ FIXME -- we're setting the RELOC flag so that sections are assumed to have relocs, otherwise we don't find out in time. */ applicable = bfd_applicable_section_flags (stdoutput); @@ -1054,6 +1061,12 @@ applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA)); bfd_set_section_flags (stdoutput, bss_section, applicable & SEC_ALLOC); +#ifdef OBJ_AMIGAHUNK + bfd_set_section_flags (stdoutput, data_chip_section, + applicable & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)); + bfd_set_section_flags (stdoutput, bss_chip_section, applicable & SEC_ALLOC); +#endif + seg_info (bss_section)->bss = 1; subseg_new (BFD_ABS_SECTION_NAME, 0); subseg_new (BFD_UND_SECTION_NAME, 0);