Change the .section directive for the AVR assembler so that the .noinit section is always given the ELF NOBITS section type.
PR gas/23570 * config/tc-avr.c (md_pseudo_table): Add entry for "secction". (avr_set_section): New function. Ensures that the .noinit section gets the NOBITS ELF section type.
This commit is contained in:
parent
78a3b0fab8
commit
8744470dea
@ -1,3 +1,10 @@
|
||||
2018-09-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR gas/23570
|
||||
* config/tc-avr.c (md_pseudo_table): Add entry for "secction".
|
||||
(avr_set_section): New function. Ensures that the .noinit section
|
||||
gets the NOBITS ELF section type.
|
||||
|
||||
2018-08-31 Kito Cheng <kito@andestech.com>
|
||||
|
||||
* testsuite/gas/riscv/c-fld-fsd-fail.d: New.
|
||||
|
@ -481,11 +481,13 @@ const char EXP_CHARS[] = "eE";
|
||||
const char FLT_CHARS[] = "dD";
|
||||
|
||||
static void avr_set_arch (int);
|
||||
static void avr_set_section (int);
|
||||
|
||||
/* The target specific pseudo-ops which we support. */
|
||||
const pseudo_typeS md_pseudo_table[] =
|
||||
{
|
||||
{"arch", avr_set_arch, 0},
|
||||
{"section", avr_set_section, 0},
|
||||
{ NULL, NULL, 0}
|
||||
};
|
||||
|
||||
@ -702,6 +704,23 @@ avr_set_arch (int dummy ATTRIBUTE_UNUSED)
|
||||
bfd_set_arch_mach (stdoutput, TARGET_ARCH, avr_mcu->mach);
|
||||
}
|
||||
|
||||
static void
|
||||
avr_set_section (int push)
|
||||
{
|
||||
obj_elf_section (push);
|
||||
|
||||
/* PR 23570. The .noinit section needs to be explicitly
|
||||
set to the NOBITS type. */
|
||||
if (seg_info (now_seg)->bss == 0
|
||||
&& strcmp (bfd_get_section_name (stdoutput, now_seg), ".noinit") == 0)
|
||||
{
|
||||
bfd_set_section_flags (stdoutput, now_seg, SEC_ALLOC | SEC_RELOC);
|
||||
seg_info (now_seg)->bss = 1;
|
||||
elf_section_type (now_seg) = SHT_NOBITS;
|
||||
elf_section_flags (now_seg) = SHF_ALLOC | SHF_WRITE;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
md_parse_option (int c, const char *arg)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user