mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 20:28:28 +08:00
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:
@ -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>
|
2018-08-31 Kito Cheng <kito@andestech.com>
|
||||||
|
|
||||||
* testsuite/gas/riscv/c-fld-fsd-fail.d: New.
|
* testsuite/gas/riscv/c-fld-fsd-fail.d: New.
|
||||||
|
@ -481,11 +481,13 @@ const char EXP_CHARS[] = "eE";
|
|||||||
const char FLT_CHARS[] = "dD";
|
const char FLT_CHARS[] = "dD";
|
||||||
|
|
||||||
static void avr_set_arch (int);
|
static void avr_set_arch (int);
|
||||||
|
static void avr_set_section (int);
|
||||||
|
|
||||||
/* The target specific pseudo-ops which we support. */
|
/* The target specific pseudo-ops which we support. */
|
||||||
const pseudo_typeS md_pseudo_table[] =
|
const pseudo_typeS md_pseudo_table[] =
|
||||||
{
|
{
|
||||||
{"arch", avr_set_arch, 0},
|
{"arch", avr_set_arch, 0},
|
||||||
|
{"section", avr_set_section, 0},
|
||||||
{ NULL, NULL, 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);
|
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
|
int
|
||||||
md_parse_option (int c, const char *arg)
|
md_parse_option (int c, const char *arg)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user