Commit graph

21 commits

Author SHA1 Message Date
Nikita Popov
1fc904f40d Add support for bundle_compat_lib 2024-08-15 09:38:47 +00:00
Nikita Popov
30cfa100b5 Fix libomp libdir 2024-08-01 15:17:00 +00:00
Nikita Popov
38a1e8a0dd Fix build_libddir 2024-08-01 15:17:00 +00:00
Nikita Popov
06529b4e5c Misc fixes and cleanup 2024-08-01 15:17:00 +00:00
Nikita Popov
4b52059c16 Add libomp compat package support
This is not part of current rawhide sources, but based on libomp17
instead.
2024-08-01 15:17:00 +00:00
Nikita Popov
12705645df Port compiler-rt changes
From: f0ee285ff1
2024-08-01 15:17:00 +00:00
Nikita Popov
56b99b7123 Port clang changes
From: bec3936967
2024-08-01 15:17:00 +00:00
Nikita Popov
60f6647ec6 Remove _smp_mflags override on ppc64le
Using a fixed -j argument is pretty dubious and may have the
opposite of the desired effect. E.g. on a recent copr build I
see ppc64le having 5 cpus, so this actually increases the level
of parallelism (and oversubscribes...) rather than decreasing.

I don't think we have evidence that this particular workaround is
still needed, so drop it.
2024-07-31 16:51:22 +02:00
Nikita Popov
72591dcbcb Disable python-lit and lldb for compat builds 2024-07-30 16:14:11 +00:00
Konrad Kleine
626da9456a Prepare non-snapshot builds
Remove version.spec.inc from git
================================

We no longer track `version.spec.inc` in git. This is useful for
development. If we build a snapshot, the file is required but if we
build a `release` build (see below), then we don't include it.

Make improvements
=================

We distinguish between `snapshot-` and `release-` builds now in the
`Makefile`. These old targets are mapped to their new counterparts and a
deprecation warning is shown:

* `setup` -> `snapshot-setup`
* `local-rpm` -> `snapshot-rpm`
* `local-srpm` -> `snapshot-srpm`
* `local-prep` -> `snapshot-prep`
* `local-clean` -> `snapshot-clean`

We also have these new Make targets that run the build process with a
release tarball instead:

* `release-setup`
* `release-rpm`
* `release-srpm`
* `release-prep`
* `release-clean`

The targets `local-list-check` and `local-tmt-vm` have been commented
out because I think they were not needed. I just kept them for future
reference of research done in those areas.

All builds described by the `Makefile` are still local and no `mock` is
involved. I find this the easiest to debug.

Toggle default bcond state for snapshot_build
=============================================

We want to be able to build non-snapshot releases with this repo. That's
why be default the build condition `snapshot_build` is off. So
only when you explicitly enable `--with=snapshot_build` or define
`--define "_with_snapshot_build 1"` you'll be able to build a snapshot.
If however the build happens in Copr with a namespace that begins with
`fedora-llvm-team/llvm-snapshots-`, then the build condition is ON by
default and there's no need to enable it explicitly with `--with=snapshot_build`.

Things related to release update
================================

* Add llvm-project tarball and signature to sources
* Fix: error: source 1001 defined multiple times
* Fix: error: source 1006 defined multiple times
* Fix missing newline
* Conditionally apply 0001-Always-build-shared-libs-for-LLD.patch
* Only enable offload runtime in snapshot mode

Misc.
=====

* Add missing prep dependency
2024-07-11 18:47:43 +00:00
Konrad Kleine
f7fcef719f Add lldb to big-merge
See https://github.com/fedora-llvm-team/llvm-snapshots/issues/573
2024-07-02 16:45:48 +02:00
Konrad Kleine
a34b2a7947 Format all files with 'pre-commit run -a' 2024-06-25 12:22:22 +02:00
Nikita Popov
c1ee2896c0 Remove 32-bit arm related conditionals
32-bit ARM hasn't been supported for quite a while, remove the
related conditions. This has already happened for the non-big-merge
branches.
2024-05-30 10:23:13 +02:00
Nikita Popov
1654df4ed3 Make lto handling similar to current rawhide
Have a --with lto_build option, where LTO is enabled by default
for everything except i686 and riscv. Use that flag to condition
whether `-DLLVM_UNITTEST_LINK_FLAGS` is passed.

Additionally, make use of the new Fat LTO functionality in rawhide
to use `-fno-lto` instead of `-Wl,-plugin-opt=O0` to save more
time linking unit tests.
2024-05-27 12:42:49 +00:00
Nikita Popov
dd570eaeab Clean up the lto_cflags mess
We were defining lto_cflags in three places. It looks like on
aarch64 nil won (LTO disabled), while on other architectures
`-flto=thin` won.

I think on rawhide, this means that we're currently shipping
bitcode in static archives, because the required
`-ffat-lto-objects` option from redhat-rpm-config is missing.

Resolve this by leaving the option at its default value --
if enabling it on aarch64 causes issues, we can disable it just
there again.

Also reenable the LLVM_UNITTEST_LINK_FLAGS option, which should
reduce the amount of time LTO takes.
2024-05-27 12:42:49 +00:00
Konrad Kleine
e49125cc6b Remove OMP SOs
The SOs are no longer installed since this commit:
fa9e90f5d2
2024-05-15 11:41:32 +00:00
Konrad Kleine
ec20e04c07 Fix lld scriptlet naming 2024-05-06 09:05:40 +00:00
Konrad Kleine
6456b314bc Integrate lld.spec into spec files 2024-05-06 08:20:29 +00:00
Tom Stellard
8fe06109bd Sync with clang upstream-snapshot branch 2024-05-02 14:55:23 +00:00
Tom Stellard
8fea7e788b Sync with openmp upstream-snapshot branch 2024-05-02 14:55:23 +00:00
Konrad Kleine
eb12c13273 merge llvm, clang, compiler-rt and libomp repos
* %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
2024-05-02 14:53:58 +00:00