Summary: | clang -gz=zlib does not pass --compress-debug-sections to linker | ||
---|---|---|---|
Product: | Base System | Reporter: | Ed Maste <emaste> |
Component: | bin | Assignee: | Ed Maste <emaste> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | ||
Priority: | --- | ||
Version: | CURRENT | ||
Hardware: | Any | ||
OS: | Any |
Description
Ed Maste
2021-03-01 17:54:30 UTC
It appears that clang 11 in the base system has this issue on Linux and FreeBSD. Testing upstream I see that the flag is passed to the linker for --target=x86_64-unknown-linux-gnu but not for --target=x86_64-unknown-freebsd. Compare upstream clang/lib/Driver/ToolChains/Gnu.cpp clang/lib/Driver/ToolChains/FreeBSD.cpp freebsd::Linker::ConstructJob() needs to have added AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA); Upstream commit, code review: https://reviews.llvm.org/rGccb4124a4172bf2cb2e1cd7c253f0f1654fce294 https://reviews.llvm.org/D87321 Now committed as https://reviews.llvm.org/rG462cf39a5c180621b56f7602270ce33eb7b68d23 A commit in branch stable/13 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=c4dbe899aa08f60b66426ecf63b1346bffe25ed8 commit c4dbe899aa08f60b66426ecf63b1346bffe25ed8 Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2021-03-03 01:35:57 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2021-03-09 14:28:54 +0000 clang: Fix -gz=zlib options for linker Clang commit ccb4124a4172bf2cb2e1cd7c253f0f1654fce294: Fix -gz=zlib options for linker gcc translates -gz=zlib to --compress-debug-options=zlib for both assembler and linker but clang only does this for assembler. The linker needs --compress-debug-options=zlib option to compress the debug sections in the generated executable or shared library. Due to this bug, -gz=zlib has no effect on the generated executable or shared library. This patch fixes that. Clang commit 462cf39a5c180621b56f7602270ce33eb7b68d23: [Driver] Fix -gz=zlib options for linker also on FreeBSD ccb4124a4172 fixed translating -gz=zlib to --compress-debug-sections for linker invocation for several ToolChains, but omitted FreeBSD. PR: 253942 Approved by: dim Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29028 (cherry picked from commit 19587d742264c5caec33d218e9cea6eb78f6c6bb) .../clang/lib/Driver/ToolChains/AMDGPU.cpp | 1 + .../clang/lib/Driver/ToolChains/CommonArgs.cpp | 18 ++++++++++++++++++ .../clang/lib/Driver/ToolChains/CommonArgs.h | 4 ++++ .../clang/lib/Driver/ToolChains/FreeBSD.cpp | 1 + .../llvm-project/clang/lib/Driver/ToolChains/Gnu.cpp | 1 + .../llvm-project/clang/lib/Driver/ToolChains/HIP.cpp | 2 ++ 6 files changed, 27 insertions(+) |