Date: Wed, 14 Feb 2024 19:43:07 GMT From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 42ceb92e6a54 - stable/13 - lld: work around elftoolchain bug which causes bloated RISCV binaries Message-ID: <202402141943.41EJh7aV067403@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=42ceb92e6a544fa0956eb660b3c16e38189acf20 commit 42ceb92e6a544fa0956eb660b3c16e38189acf20 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-02-14 19:41:09 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-02-14 19:42:21 +0000 lld: work around elftoolchain bug which causes bloated RISCV binaries The elftoolchain strip(1) command appears to have trouble with the new .riscv.attributes sections being added by lld 17 to RISCV binaries. This causes huge 'holes' in the files, making them larger than necessary. Since nothing in the base system uses the new section yet, patch lld to leave it out for now. Direct commit to stable/13, since this intended to go into the 13.3 release, while the elftoolchain bug is being investigated. Reported by: karels Submitted by: jrtc27 Approved by: re (cperciva) --- contrib/llvm-project/lld/ELF/Writer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/llvm-project/lld/ELF/Writer.cpp b/contrib/llvm-project/lld/ELF/Writer.cpp index 368c9aabceae..850a6bb49721 100644 --- a/contrib/llvm-project/lld/ELF/Writer.cpp +++ b/contrib/llvm-project/lld/ELF/Writer.cpp @@ -2044,9 +2044,13 @@ template <class ELFT> void Writer<ELFT>::finalizeSections() { addPhdrForSection(part, SHT_MIPS_OPTIONS, PT_MIPS_OPTIONS, PF_R); addPhdrForSection(part, SHT_MIPS_ABIFLAGS, PT_MIPS_ABIFLAGS, PF_R); } +#if 0 + // XXX: This stops elftoolchain strip adjusting .riscv.attributes, + // leaving large holes in binaries. if (config->emachine == EM_RISCV) addPhdrForSection(part, SHT_RISCV_ATTRIBUTES, PT_RISCV_ATTRIBUTES, PF_R); +#endif } Out::programHeaders->size = sizeof(Elf_Phdr) * mainPart->phdrs.size();
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202402141943.41EJh7aV067403>