Add test for building an rpm with -fopenmp

This commit is contained in:
Tom Stellard 2022-03-23 01:24:23 +00:00 committed by tstellar
parent 4ae8585417
commit 906570b432
4 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,6 @@
summary: Test build a simple RPM package to ensure that -fopenmp works
require:
- dnf
- dnf-plugins-core
- rpm-build
test: ./runtest.sh

6
tests/openmp-rpm/runtest.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
set -ex
dnf -y build-dep test.spec
rpmbuild --define '_sourcedir .' --define '_builddir .' -bb test.spec

7
tests/openmp-rpm/test.c Normal file
View File

@ -0,0 +1,7 @@
int main(int argc, char **argv) {
int res = 1;
#pragma omp parallel
#pragma omp single
res = 0;
return res;
}

View File

@ -0,0 +1,34 @@
%global toolchain clang
Name: test
Version: 1
Release: 1
Summary: Test package for checking that RPM packages using -fopenmp build correctly
License: MIT
BuildRequires: clang
BuildRequires: libomp
Source0: test.c
%description
clang was adding RUNPATH to binaries that use OpenMP, and since RUNPATH
is prohibited in Fedora builds, this was causing packages using clang
and OpenMP to fail to build.
References:
https://fedoraproject.org/wiki/Changes/Broken_RPATH_will_fail_rpmbuild
https://github.com/llvm/llvm-project/commit/9b9d08111b618d74574ba03e5cc3d752ecc56f55
%build
clang ${CFLAGS} -fopenmp %{SOURCE0} -o main
%check
./main
%install
install -d %{buildroot}%{_bindir}
install main %{buildroot}%{_bindir}
%files
%{_bindir}/main