Link clang with ld on 32-bit architectures

We noticed that lld creates `.relro_padding` ELF sections that `objcopy`
later modifies to have a `sh_entsize` (entry size) of `0x08`. This
causes the modulus of `sh_size % sh_entsize` to be non zero in some cases.
That in turn caused `eu-strip` to complain about

```
eu-strip: while writing './usr/lib/libclang.so.18.1.8': invalid section entry size
```

As an end result for i686 the `clang-devel-debuginfo` package wasn't
created for example.

Linking with `ld` instead of `lld` on 32-bit architecuteres hopefully
addresses this problem.

Related: RHEL-28687
This commit is contained in:
Konrad Kleine 2024-07-24 15:39:52 +02:00
parent 57cb5d80cc
commit aa698bf28a

View File

@ -17,7 +17,7 @@
%bcond_without bundle_compat_lib
%bcond_without check
%ifnarch s390x
%ifnarch s390x %ix86
%global build_ldflags %{build_ldflags} -Wl,--build-id=sha1
%bcond_without linker_lld
%else
@ -85,7 +85,7 @@
Name: %pkg_name
Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}}
Release: 1%{?dist}
Release: 2%{?dist}
Summary: A C language family front-end for LLVM
License: Apache-2.0 WITH LLVM-exception OR NCSA
@ -800,16 +800,19 @@ mv ./libclang-cpp.so.%{compat_maj_ver} "$compat_lib"
%endif
%changelog
* Tue Jul 16 2024 Konrad Kleine <kkleine@redhat.com> 18.1.8-1
* Wed Jul 24 2024 Konrad Kleine <kkleine@redhat.com> - 18.1.8-2
- Link with ld on 32-bit architectures
* Tue Jul 16 2024 Konrad Kleine <kkleine@redhat.com> - 18.1.8-1
- Update to 18.1.8
* Thu Jun 06 2024 Konrad Kleine <kkleine@redhat.com> 18.1.6-3
* Thu Jun 06 2024 Konrad Kleine <kkleine@redhat.com> - 18.1.6-3
- Rebuild
* Tue Jun 04 2024 Konrad Kleine <kkleine@redhat.com> 18.1.6-2
* Tue Jun 04 2024 Konrad Kleine <kkleine@redhat.com> - 18.1.6-2
- Default to DWARF4
* Tue May 28 2024 Konrad Kleine <kkleine@redhat.com> 18.1.6-1
* Tue May 28 2024 Konrad Kleine <kkleine@redhat.com> - 18.1.6-1
- Update to 18.1.6
* Tue Jan 09 2024 Timm Bäder <tbaeder@redhat.com> - 17.0.6-5