Add update-alternative for ld
rhbz#1739973
This commit is contained in:
parent
9d776282c7
commit
fbb8d64fa7
16
lld.spec
16
lld.spec
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Name: lld
|
Name: lld
|
||||||
Version: 8.0.0
|
Version: 8.0.0
|
||||||
Release: 1%{?rc_ver:.rc%{rc_ver}}%{?dist}.1
|
Release: 2%{?rc_ver:.rc%{rc_ver}}%{?dist}
|
||||||
Summary: The LLVM Linker
|
Summary: The LLVM Linker
|
||||||
|
|
||||||
License: NCSA
|
License: NCSA
|
||||||
@ -27,6 +27,9 @@ BuildRequires: python3-rpm-macros
|
|||||||
BuildRequires: python3-lit
|
BuildRequires: python3-lit
|
||||||
BuildRequires: llvm-googletest = %{version}
|
BuildRequires: llvm-googletest = %{version}
|
||||||
|
|
||||||
|
Requires(post): %{_sbindir}/alternatives
|
||||||
|
Requires(preun): %{_sbindir}/alternatives
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The LLVM project linker.
|
The LLVM project linker.
|
||||||
|
|
||||||
@ -76,6 +79,13 @@ cd %{_target_platform}
|
|||||||
chrpath --delete %{buildroot}%{_bindir}/*
|
chrpath --delete %{buildroot}%{_bindir}/*
|
||||||
chrpath --delete %{buildroot}%{_libdir}/*.so*
|
chrpath --delete %{buildroot}%{_libdir}/*.so*
|
||||||
|
|
||||||
|
%post
|
||||||
|
%{_sbindir}/update-alternatives --install %{_bindir}/ld ld %{_bindir}/ld.lld 1
|
||||||
|
|
||||||
|
%postun
|
||||||
|
if [ $1 -eq 0 ] ; then
|
||||||
|
%{_sbindir}/update-alternatives --remove ld %{_bindir}/ld.lld
|
||||||
|
fi
|
||||||
|
|
||||||
%check
|
%check
|
||||||
|
|
||||||
@ -87,6 +97,7 @@ make -C %{_target_platform} %{?_smp_mflags} check-lld
|
|||||||
%ldconfig_scriptlets libs
|
%ldconfig_scriptlets libs
|
||||||
|
|
||||||
%files
|
%files
|
||||||
|
%ghost %{_bindir}/ld
|
||||||
%{_bindir}/lld*
|
%{_bindir}/lld*
|
||||||
%{_bindir}/ld.lld
|
%{_bindir}/ld.lld
|
||||||
%{_bindir}/ld64.lld
|
%{_bindir}/ld64.lld
|
||||||
@ -100,6 +111,9 @@ make -C %{_target_platform} %{?_smp_mflags} check-lld
|
|||||||
%{_libdir}/liblld*.so.*
|
%{_libdir}/liblld*.so.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Aug 13 2019 Tom Stellard <tstellar@redhat.com> - 8.0.0-2
|
||||||
|
- Add update-alternative for ld
|
||||||
|
|
||||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.0-1.1
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.0-1.1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
32
tests/ld-alternative/runtest.sh
Executable file
32
tests/ld-alternative/runtest.sh
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This test assumes lld is already installed.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
function verify_ld_bfd {
|
||||||
|
|
||||||
|
# Verify that /usr/bin/ld points to ld.bfd.
|
||||||
|
ls -l /etc/alternatives/ld | grep ld.bfd
|
||||||
|
|
||||||
|
# Run ld and verify it invokes ld.bfd
|
||||||
|
/usr/bin/ld --version | grep 'GNU ld'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Verify ld.bfd is still the system linker when lld is installed
|
||||||
|
verify_ld_bfd
|
||||||
|
|
||||||
|
# Set lld as the system linker
|
||||||
|
update-alternatives --set ld /usr/bin/ld.lld
|
||||||
|
|
||||||
|
# Verify that /usr/bin/ld points to lld
|
||||||
|
ls -l /etc/alternatives/ld | grep ld.lld
|
||||||
|
|
||||||
|
# Run ld and verify it invokes lld
|
||||||
|
/usr/bin/ld --version | grep 'LLD'
|
||||||
|
|
||||||
|
# Uninstall lld and make sure the /usr/bin/ld is reset to ld.bfd
|
||||||
|
dnf -y remove lld
|
||||||
|
|
||||||
|
verify_ld_bfd
|
14
tests/tests-ld-alternative.yml
Normal file
14
tests/tests-ld-alternative.yml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# The ld-alternative test uninstalls lld, so it needs to be run by
|
||||||
|
# itself in a separate .yml file so it doesn't modify the test
|
||||||
|
# environment for other tests.
|
||||||
|
|
||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
required_packages:
|
||||||
|
- binutils
|
||||||
|
- lld
|
||||||
|
tests:
|
||||||
|
- ld-alternative
|
Loading…
Reference in New Issue
Block a user