diff --git a/.gitignore b/.gitignore index 69229d3..8a01b32 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/lld-13.0.1.src.tar.xz +SOURCES/lld-14.0.6.src.tar.xz SOURCES/tstellar-gpg-key.asc diff --git a/.lld.metadata b/.lld.metadata index 8eb0ab8..5171d3a 100644 --- a/.lld.metadata +++ b/.lld.metadata @@ -1,2 +1,2 @@ -78d69e9bd03422f12cf36cc720bf4ee7293e17c5 SOURCES/lld-13.0.1.src.tar.xz +bba0ab108d525c911e80fed4b10435e459cdf7b6 SOURCES/lld-14.0.6.src.tar.xz b8d2648a01d36ed0186fd2c5af325fd28797f9a0 SOURCES/tstellar-gpg-key.asc diff --git a/SOURCES/lld-13.0.1.src.tar.xz.sig b/SOURCES/lld-13.0.1.src.tar.xz.sig deleted file mode 100644 index b07cb7d..0000000 Binary files a/SOURCES/lld-13.0.1.src.tar.xz.sig and /dev/null differ diff --git a/SOURCES/lld-14.0.6.src.tar.xz.sig b/SOURCES/lld-14.0.6.src.tar.xz.sig new file mode 100644 index 0000000..afb2249 Binary files /dev/null and b/SOURCES/lld-14.0.6.src.tar.xz.sig differ diff --git a/SPECS/lld.spec b/SPECS/lld.spec index 982bc09..e4a08b3 100644 --- a/SPECS/lld.spec +++ b/SPECS/lld.spec @@ -1,27 +1,27 @@ %bcond_without check -#global rc_ver 4 +#global rc_ver 1 %global lld_srcdir lld-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src -%global baserelease 2 -%global maj_ver 13 +%global maj_ver 14 %global min_ver 0 -%global patch_ver 1 +%global patch_ver 6 # Don't include unittests in automatic generation of provides or requires. %global __provides_exclude_from ^%{_libdir}/lld/.*$ %global __requires_exclude ^libgtest.*$ %bcond_with ld_alternative +%bcond_with testpkg Name: lld Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}} -Release: %{baserelease}%{?rc_ver:.rc%{rc_ver}}%{?dist} +Release: 1%{?rc_ver:.rc%{rc_ver}}%{?dist} Summary: The LLVM Linker License: NCSA URL: http://llvm.org -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{lld_srcdir}.tar.xz -Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{lld_srcdir}.tar.xz.sig +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{lld_srcdir}.tar.xz +Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{lld_srcdir}.tar.xz.sig Source2: tstellar-gpg-key.asc Source3: run-lit-tests Source4: lit.lld-test.cfg.py @@ -33,7 +33,6 @@ Patch0: 0001-PATCH-lld-CMake-Check-for-gtest-headers-even-if-lit..patch # Bundle libunwind header need during build for MachO support Patch1: 0002-PATCH-lld-Import-compact_unwind_encoding.h-from-libu.patch - BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake @@ -49,6 +48,9 @@ BuildRequires: python3-rpm-macros BuildRequires: python3-lit BuildRequires: llvm-googletest = %{version} +# For gpg source verification +BuildRequires: gnupg2 + %if %{with ld_alternative} Requires(post): %{_sbindir}/alternatives Requires(preun): %{_sbindir}/alternatives @@ -76,7 +78,20 @@ Summary: LLD shared libraries %description libs Shared libraries for LLD. +%if %{with testpkg} +%package test +Summary: LLD regression tests +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: python3-lit +Requires: llvm-test(major) = %{maj_ver} +Requires: lld-libs = %{version}-%{release} + +%description test +LLVM regression tests. +%endif + %prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -n %{lld_srcdir} -p2 @@ -107,11 +122,55 @@ cd %{_vpath_builddir} %cmake_build -%install -# Install libraries and binaries -cd %{_target_platform} +%if %{with testpkg} +# Build the unittests so we can install them. +%cmake_build --target lld-test-depends +%endif +%install +%if %{with testpkg} +%global lit_cfg test/%{_arch}.site.cfg.py +%global lit_unit_cfg test/Unit/%{_arch}.site.cfg.py +%global lit_lld_test_cfg_install_path %{_datadir}/lld/lit.lld-test.cfg.py + +# Generate lit config files. Strip off the last line that initiates the +# test run, so we can customize the configuration. +head -n -1 %{__cmake_builddir}/test/lit.site.cfg.py >> %{lit_cfg} +head -n -1 %{__cmake_builddir}/test/Unit/lit.site.cfg.py >> %{lit_unit_cfg} + +# Patch lit config files to load custom config: +for f in %{lit_cfg} %{lit_unit_cfg}; do + echo "lit_config.load_config(config, '%{lit_lld_test_cfg_install_path}')" >> $f +done + +# Install test files +install -d %{buildroot}%{_datadir}/lld/src +cp %{SOURCE4} %{buildroot}%{_datadir}/lld/ + +# The various tar options are there to make sur the archive is the same on 32 and 64 bit arch, i.e. +# the archive creation is reproducible. Move arch-specific content out of the tarball +mv %{lit_cfg} %{buildroot}%{_datadir}/lld/src/%{_arch}.site.cfg.py +mv %{lit_unit_cfg} %{buildroot}%{_datadir}/lld/src/%{_arch}.Unit.site.cfg.py +tar --sort=name --mtime='UTC 2020-01-01' -c test/ | gzip -n > %{buildroot}%{_datadir}/lld/src/test.tar.gz + +install -d %{buildroot}%{_libexecdir}/tests/lld +install -m 0755 %{SOURCE3} %{buildroot}%{_libexecdir}/tests/lld + +# Install unit test binaries +install -d %{buildroot}%{_libdir}/lld/ + +rm -rf `find %{buildroot}%{_libdir}/lld/ -iname '*make*'` + +# Install gtest libraries +cp %{__cmake_builddir}/%{_lib}/libgtest*so* %{buildroot}%{_libdir}/lld/ +%endif + +# Install libraries and binaries +pushd %{_vpath_builddir} %cmake_install +popd + + # This is generated by Patch1 during build and (probably) must be removed afterward rm %{buildroot}%{_includedir}/mach-o/compact_unwind_encoding.h @@ -130,13 +189,14 @@ fi %endif %check - cd %{_vpath_builddir} # armv7lhl tests disabled because of arm issue, see https://koji.fedoraproject.org/koji/taskinfo?taskID=33660162 %ifnarch %{arm} +%if %{with check} %cmake_build --target check-lld %endif +%endif %ldconfig_scriptlets libs @@ -148,8 +208,6 @@ cd %{_vpath_builddir} %{_bindir}/lld* %{_bindir}/ld.lld %{_bindir}/ld64.lld -%{_bindir}/ld64.lld.darwinnew -%{_bindir}/ld64.lld.darwinold %{_bindir}/wasm-ld %files devel @@ -160,7 +218,26 @@ cd %{_vpath_builddir} %files libs %{_libdir}/liblld*.so.* +%if %{with testpkg} +%files test +%{_libexecdir}/tests/lld/ +%{_libdir}/lld/ +%{_datadir}/lld/src/test.tar.gz +%{_datadir}/lld/src/%{_arch}.site.cfg.py +%{_datadir}/lld/src/%{_arch}.Unit.site.cfg.py +%{_datadir}/lld/lit.lld-test.cfg.py +%endif + %changelog +* Tue Jun 28 2022 Tom Stellard - 14.0.6-1 +- 14.0.6 Release + +* Fri May 06 2022 Timm Bäder - 14.0.0-2 +- Backport ignoring --no-add-needed + +* Thu Apr 07 2022 Timm Bäder - 14.0.0-1 +- Update to 14.0.0 + * Thu Feb 03 2022 Tom Stellard - 13.0.1-1 - 13.0.1 Release