Merge remote-tracking branch 'up/f37' into f37-riscv64

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
David Abdurachmanov 2022-11-23 08:59:36 +02:00
commit e4f4e66eb0
Signed by: davidlt
GPG Key ID: 8B7F1DA0E2C9FDBB
19 changed files with 22 additions and 225 deletions

4
.gitignore vendored
View File

@ -134,3 +134,7 @@
/llvm-15.0.0.src.tar.xz.sig
/cmake-15.0.0.src.tar.xz
/cmake-15.0.0.src.tar.xz.sig
/llvm-15.0.4.src.tar.xz
/llvm-15.0.4.src.tar.xz.sig
/cmake-15.0.4.src.tar.xz
/cmake-15.0.4.src.tar.xz.sig

View File

@ -20,7 +20,7 @@
#global rc_ver 3
%global maj_ver 15
%global min_ver 0
%global patch_ver 0
%global patch_ver 4
%if !%{maj_ver} && 0%{?rc_ver}
%global abi_revision 2
%endif
@ -569,15 +569,15 @@ fi
%endif
%changelog
* Tue Oct 04 2022 David Abdurachmanov <davidlt@rivosinc.com> - 15.0.0-1.1.riscv64
- Compile with Clang
* Tue Oct 04 2022 David Abdurachmanov <davidlt@rivosinc.com> - 15.0.0-1.0.riscv64
* Tue Oct 04 2022 David Abdurachmanov <davidlt@rivosinc.com> - 15.0.4-1.0.riscv64
- Disable tests on riscv64 for now
- Disable LTO on riscv64 (there is no thin LTO in GCC)
- Build with GCC (bootstrapping)
- Lower memory consumption on riscv64
* Mon Nov 07 2022 Nikita Popov <npopov@redhat.com> - 15.0.4-1
- Update to LLVM 15.0.4
* Tue Sep 06 2022 Nikita Popov <npopov@redhat.com> - 15.0.0-1
- Update to LLVM 15.0.0

View File

@ -1,4 +1,4 @@
SHA512 (llvm-15.0.0.src.tar.xz) = 323e6a7940f47dee11dae7b80ea25451080f2d84a6c4ca47d5a20d796efc6dbaec2036b968fdef34f1167fbeb10825d06ec7eb366854bf925f89a2ac13a05aa4
SHA512 (llvm-15.0.0.src.tar.xz.sig) = bb2ea08b94fca1b6fde6b6d95db97cf41ada674e3044b3de395d3e249b602dde1b8f9b75aa1c6f5c32e87e0ea6645d51eeeae1febff99cb8c6c44ba6c88e5655
SHA512 (cmake-15.0.0.src.tar.xz) = e8bcc349ff8311f7d5530b2654434b66560a85cad7c46b707b8a484963cba44894a5565adbaa4b892225a03b74b63b5f54491c11489975db5bcdeac5eea12841
SHA512 (cmake-15.0.0.src.tar.xz.sig) = f2f0a60deb01c4555ef6bbcfdd712d5478cbbc3a6b96c0d306042451110dbac799ac780229fc46de2faef069ebccdda47d635a4e17290c29b9d8616fcbc11c98
SHA512 (llvm-15.0.4.src.tar.xz) = ab543afdf3664f88f9174a673a089bfa3477e20f88f49ed07fab3322767741a2efebc4a15e8fa2b4aa494ef7ed0d9e3acfb2c1bf7044b75bfd00eb94dbd49db6
SHA512 (llvm-15.0.4.src.tar.xz.sig) = 215dbf0dbea69d73d74b7eac279af077c23eaf6d80f70d4795f10680000a243ecfb60b37ce1258868ee85aecda0bb70a889f609a6318c10540b338cfe111797a
SHA512 (cmake-15.0.4.src.tar.xz) = c983deefbdf128bf47d009a4eed0628f69462146c33e7e670bc43f80aea3dacf9c1367d81afea9512126d15543156b11c7d9eca7944f4b8e4c5c31479c549734
SHA512 (cmake-15.0.4.src.tar.xz.sig) = 808203cbf9e71dcd01abf57ac2f41be76010fd0535b63cc55593a28f5ca6817ff6b1d62fe38ca723aacd05b17f1175bf386b2107a5295c5baa5218be945c0b3b

6
tests/README.md Normal file
View File

@ -0,0 +1,6 @@
# Gating testplans for LLVM
The tests for LLVM are in a separate repo: https://src.fedoraproject.org/tests/llvm
This directory should contain only fmf plans (such as build-gating.fmf) which import
the tests from the tests repo. This can be done using the "url" parameter of the
plan's "discover" step. Reference: https://tmt.readthedocs.io/en/stable/spec/plans.html#fmf

View File

@ -1,2 +0,0 @@
summary: Make sure the the LLVM plugin for binutils' ar works
test: "$WITH_SCL ./test.sh"

View File

@ -1,7 +0,0 @@
#!/bin/sh -eux
set pipefail
echo "void lto_function(){}" | clang -flto -O2 -c -x c -o foo.o -
ar crs foo.a foo.o
readelf -c foo.a | grep lto_function

View File

@ -1,3 +0,0 @@
summary: Make sure rebuilding LLVM still works with the new LLVM
test: "$WITH_SCL ./test.sh"
enabled: false

View File

@ -1,14 +0,0 @@
#!/bin/sh -eux
dnf download --disablerepo=* --enablerepo=test-llvm --source llvm
# The src.rpm is available in the directory the test run from.
set +e
mock --resultdir=. --old-chroot --with compat_build --rebuild *.src.rpm
if [ $? -ne 0 ]; then
cat root.log
cat build.log
exit 1
fi
exit 0

View File

@ -48,7 +48,10 @@ adjust:
or distro == rhel-8
discover:
- name: llvm-tests
how: fmf
url: https://src.fedoraproject.org/tests/llvm.git
ref: main
execute:
how: tmt
provision:

View File

@ -1,81 +0,0 @@
summary: Run the upstream LLVM integration test suite
description: |
Run the upstream LLVM integration test suite
test: "$WITH_SCL ./test.sh"
require:
- git
- make
# These require special repositories to be enabled on RHEL
- libstdc++-static
adjust:
# Common requirements when LLVM is not SCL-ized
- require+:
- cmake
- clang
- clang-analyzer
- clang-devel
- clang-tools-extra
- compiler-rt
- lld
- lldb
- libomp-devel
- llvm-devel
- python3-lit
when: "collection is not defined"
# Requirements for SCL-ized LLVM
- require+:
- llvm-toolset-13.0-cmake
- llvm-toolset-13.0-clang
- llvm-toolset-13.0-clang-analyzer
- llvm-toolset-13.0-clang-devel
- llvm-toolset-13.0-clang-tools-extra
- llvm-toolset-13.0-compiler-rt
- llvm-toolset-13.0-lld
- llvm-toolset-13.0-lldb
- llvm-toolset-13.0-libomp-devel
- llvm-toolset-13.0-llvm-devel
- llvm-toolset-13.0-python3-lit
when: "collection == llvm-toolset-13.0"
- require+:
- llvm-toolset-14.0-cmake
- llvm-toolset-14.0-clang
- llvm-toolset-14.0-clang-analyzer
- llvm-toolset-14.0-clang-devel
- llvm-toolset-14.0-clang-tools-extra
- llvm-toolset-14.0-compiler-rt
- llvm-toolset-14.0-lld
- llvm-toolset-14.0-lldb
- llvm-toolset-14.0-libomp-devel
- llvm-toolset-14.0-llvm-devel
- llvm-toolset-14.0-python3-lit
when: "collection == llvm-toolset-14.0"
# lld not supported in s390x or ppc64. If any lld package was added to
# requirements, remove it.
- require-:
- lld
- llvm-toolset-13.0-lld
- llvm-toolset-14.0-lld
when: arch == s390x or arch == ppc64
# libomp not supported in s390x. If any libomp-devel package was added to
# requirements, remove it.
- require-:
- libomp-devel
- llvm-toolset-13.0-libomp-devel
- llvm-toolset-14.0-libomp-devel
when: arch == s390x
# libcxx shall be required in Fedora, it's not shipped with RHEL.
- require+:
- libcxx-devel
when: "distro == fedora"
because: testing against libcxx package in Fedora
- environment+:
CMAKE_CXXLIB: "-DENABLE_LIBCXX=OFF"
when: >-
distro == centos
or distro == rhel
because: libcxx is not shipped with neither Centos nor RHEL

View File

@ -1,39 +0,0 @@
#!/bin/sh -eux
usage() {
echo "usage `basename $0` [OPTIONS]"
echo " --threads NUM The number of threads to use for running tests."
}
threads=0
thread_args=""
repo_url=https://github.com/opencollab/llvm-toolchain-integration-test-suite
while [ $# -gt 0 ]; do
case $1 in
--threads)
shift
threads="$1"
;;
* )
echo "unknown option: $1"
echo ""
usage
exit 1
;;
esac
shift
done
if [ "$threads" -ge 1 ]; then
thread_args="-j$threads"
fi
cd $(mktemp -d -p /var/tmp)
git clone $repo_url
cd llvm-toolchain-integration-test-suite
mkdir _build && cd _build
cmake .. ${CMAKE_CXXLIB:-}
# Do not run with make as it will return 2 in case of failures, which will be
# reported by tmt as error instead failure. Run with lit so it returns 1.
lit --show-unsupported --show-xfail -v tests

View File

@ -1,13 +0,0 @@
summary: Check that libLLVM.so has been properly stripped
test: "$WITH_SCL ./test.sh"
environment:
LIBLLVM_PATH: /usr/lib64/libLLVM.so
adjust:
- because: "With SCL-ized LLVM, library path is different"
environment+:
LIBLLVM_PATH: /opt/rh/llvm-toolset-13.0/root/usr/lib64/libLLVM.so
when: "collection == llvm-toolset-13.0"
- because: "With SCL-ized LLVM, library path is different"
environment+:
LIBLLVM_PATH: /opt/rh/llvm-toolset-14.0/root/usr/lib64/libLLVM.so
when: "collection == llvm-toolset-14.0"

View File

@ -1,10 +0,0 @@
#!/bin/sh -eux
# There is a bug in the build process when it runs out of disk space
# while stripping binaries, which causes the strip to fail, but does
# not fail the build. This results in a libLLVM.so that is over 2GB
# which breaks the nightly compose. So this test checks that libLLVM.so
# is less than 150MB to ensure it was successfully stripped.
# https://bugzilla.redhat.com/show_bug.cgi?id=1793250
test $(stat -L -c %s $LIBLLVM_PATH) -lt 157286400

View File

@ -1,2 +0,0 @@
summary: Make sure llvm-config symlink is properly set up
test: "$WITH_SCL ./test.sh"

View File

@ -1,3 +0,0 @@
#!/bin/sh -eux
llvm-config --version

View File

@ -1,30 +0,0 @@
summary: Test basic cargo usage
test: "$WITH_SCL ./test.sh"
require: []
adjust:
# Common requirements when LLVM is not SCL-ized
- require+:
# Required for rust and possibly other dependant packages
#
# NOTE #1: drop the requirement once the transitional period between releases is gone
# and llvm-compat is no longer a) needed, and b) part of the build.
#
# NOTE #2: keep it the first requirement. Depending on the order of requirements, placing it somewhere
# else in the list may lead to harness uninstalling and re-installing LLVM packages. That a) would be
# a waste of time, b) could potentially hide issues, leading to testing unexpected NVRs.
#
# - llvm-compat
- cargo
- rust
when: "collection is not defined"
# Requirements for SCL-ized LLVM
- require+:
- rust-toolset-1.58-cargo
- rust-toolset-1.58-rust
when: "collection == llvm-toolset-13.0"
- require+:
- rust-toolset-1.62-cargo
- rust-toolset-1.62-rust
when: "collection == llvm-toolset-14.0"

View File

@ -1,5 +0,0 @@
#!/bin/sh -eux
cargo new hello
cd hello
cargo run

View File

@ -1,2 +0,0 @@
summary: Make sure the versioned llvm-config symlink is properly set up
test: "$WITH_SCL ./test.sh"

View File

@ -1,5 +0,0 @@
#!/bin/sh -eux
major=$(llvm-config --version | cut -d '.' -f1)
llvm-config-$major --version