This ports the change from https://src.fedoraproject.org/rpms/compiler-rt/pull-request/67
to big-merge, which is a bit more complicated here due to the
explicit file lists.
By default compiler_rt_triple is the same as llvm_triple. For x86
it is i386-redhat-linux-gnu instead, with a symlink to the
llvm_triple i686-redhat-linux-gnu.
And then the file list also needs to ship that symlink.
The clang resource directory is always in lib/, while this was
creating the directories in lib64 (for 64-bit symbols).
This should fix the following error on ppc64le:
> error: Directory not found: /builddir/build/BUILDROOT/llvm-19.0.0~pre20240528.g1de1ee9cbabd64-1.fc39.ppc64le/usr/lib/clang/19/bin
Fix these errors on s390x by excluding the files on that arch:
File not found: /builddir/build/BUILDROOT/llvm-19.0.0~pre20240526.gc87a7b3bdb6737-1.fc41.s390x/usr/lib/clang/19/lib/s390x-redhat-linux-gnu/clang_rt.crtbegin.o
File not found: /builddir/build/BUILDROOT/llvm-19.0.0~pre20240526.gc87a7b3bdb6737-1.fc41.s390x/usr/lib/clang/19/lib/s390x-redhat-linux-gnu/clang_rt.crtend.o
File not found: /builddir/build/BUILDROOT/llvm-19.0.0~pre20240526.gc87a7b3bdb6737-1.fc41.s390x/usr/lib/clang/19/lib/s390x-redhat-linux-gnu/liborc_rt.a
Fix this error on i686 by explicitly creating the directory.
This matches what the implementation did pre-big-merge. I think
we do want to keep this directory structure consistent across all
arches.
Directory not found: /builddir/build/BUILDROOT/llvm-19.0.0~pre20240526.gc87a7b3bdb6737-1.fc41.i386/usr/lib/clang/19/bin
* %check: export LD_LIBRARY_PATH because runtimes use external cmake projects that wouldn't find libclang++.so
* %check: use LLVM's LIT_XFAIL to mark tests that are expected to fail and don't just delete them
* clang: bring over *.patch files
* clang: remove build requires tags from clang package that are already defined by main llvm package
* clang: remove duplicates found in llvm globals and use %{pkg_datadir} instead of %{install_datadir}
* clang: rename and use pkg_name -> pkg_name_clang
* clang: use %{pkg_name_clang} instead of %{name}
* compiler-rt and libomp: wrap in %if %{without compat_build}
* libomp: also build libomp for s390x (See https://github.com/llvm/llvm-project/pull/66081)
* libomp: exclude libomp-devel on s390x just like libomp itself
* libomp: introduce pkg_name_libomp and cleanup the globals
* libomp: remove gdb-plugin (NEED TO CONFIRM IF THIS IS REALLY TRUE)
* libomp: filter out flaky libomp test: ompt/teams/distribute_dispatch.c
* llvm: add BuildRequires: graphviz to llvm-doc
* llvm: use %{pkg_name_llvm} instead of %{name}
* make: added temporary Makefile so I can more easily run srpm or rpm builds locally
* make: Added local-tmt-vm target (not really useful yet)
* rpm: for non-RHEL add prefix like "Jan 05 16:17:06" to every log line This should help in finding out how long things take to build/install/...
* rpm: fully specify %files for top-level packages
* rpm: make all packages fully qualified
* rpm: obsolete llvm-snapshot-builder
* rpm: remove BuildRequires: python3-lit because we have it in-tree
* rpm: remove BuildRequires: tags for clang and llvm specifics as we're building in-tree
* rpm: rename %llvm_srcdir -> %srcdir_llvm
* rpm: rename %pkg_name -> %pkg_name_llvm
* rpm: use full qualified name in %description
* rpm: use region comments in spec file to group by package. This allows editors to fold text to get a better overview
* rpmlint: update rc file to reflect clang and compiler-rt (libomp has no rpmlint rc file)
* use python-lit from within tree