This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] RISC-V: Delete zero-size .tdata.dyn section.
- From: Jim Wilson <jimw at sifive dot com>
- To: binutils at sourceware dot org
- Cc: Jim Wilson <jimw at sifive dot com>
- Date: Thu, 4 Oct 2018 13:31:27 -0700
- Subject: [PATCH] RISC-V: Delete zero-size .tdata.dyn section.
Now that .tdata.dyn is marked SEC_LINKER_CREATED, we have to explicitly check
for zero size sections and remove them after riscv_elf_adjust_dynamic_symbol
has handled all symbols. This is done in riscv_elf_size_dynamic_sections
where we already have code for this; we just need to add the .tdata.dyn section
to the list of sections that it handles.
This was tested with cross builds and checks for riscv{32,64}-{elf,linux}.
There were no regressions. It was also tested with a cross toolchain build
riscv64-linux and a make check using -Wl,--gc-sections which was the original
problem, and there were no regressions in the gcc and libstdc++ testsuites.
This fixes the bug Andreas Schwab reported, where we were ending up with zero
size .tdata sections in linked executables, confusing elfutils.
Committed.
Jim
bfd/
* elfnn-riscv.c (riscv_elf_size_dynamic_sections): In dynobj->sections
loop, handle htab->sdyntdata section.
---
bfd/elfnn-riscv.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 88f491f914..5cde72f003 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -1274,7 +1274,8 @@ riscv_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
|| s == htab->elf.sgot
|| s == htab->elf.sgotplt
|| s == htab->elf.sdynbss
- || s == htab->elf.sdynrelro)
+ || s == htab->elf.sdynrelro
+ || s == htab->sdyntdata)
{
/* Strip this section if we don't need it; see the
comment below. */
--
2.17.1