This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]