Commit graph

11 commits

Author SHA1 Message Date
Nikita Popov
3b5b15045a Pass --with=snapshot_build in copr Makefile
We now no longer default to this in the spec file, so pass it
explicitly on copr.
2024-09-30 08:38:00 +00:00
Konrad Kleine
b6c196c8a3 Remove not needed condition in version.spec.inc 2024-09-02 15:45:30 +02:00
Konrad Kleine
7f69c7ebdf 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-09-02 15:45:30 +02:00
Konrad Kleine
d786a89a64 Format all files with 'pre-commit run -a' 2024-09-02 15:45:30 +02:00
Konrad Kleine
fc801cc563 Remove no longer used %llvm_snapshot_source_prefix macro 2024-09-02 15:45:30 +02:00
Konrad Kleine
8442b8df62 Use github source code archive
Instead of generating our own archive we now use the github generated
source code archive instead [1]. We now only sync on the LLVM version
and git revision via our own github releases [2].

[1]: https://docs.github.com/en/repositories/working-with-files/using-files/downloading-source-code-archives#source-code-archive-urls
[2]: https://github.com/fedora-llvm-team/llvm-snapshots/releases/tag/snapshot-version-sync
2024-09-02 15:45:30 +02:00
Konrad Kleine
4836e0c649 Adjust download URL for tarballs to new project location 2024-09-02 15:45:30 +02:00
Konrad Kleine
ab194f104b 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-09-02 15:45:17 +02:00
Konrad Kleine
739ec228d0 Revert "Try to lock llvm* and clang* packages so that we don't install LLVM from a previous copr build"
This reverts commit 072ee8575f.
2024-09-02 15:44:13 +02:00
Konrad Kleine
c66e428a64 Try to lock llvm* and clang* packages so that we don't install LLVM from a previous copr build 2024-09-02 15:44:13 +02:00
Tulio Magno Quites Machado Filho
d5b39fd081 Update to LLVM 17.0.0 RC1
This is also a squashed merge commit from upstream-snapshot (commit ID
340b9e8ea3) into rawhide whose most important commits from
upstream-snapshot are:

Konrad Kleine (50):
      Prepare for snapshot build
      Fix RPM build errors: File not found: /builddir/build/BUILDROOT/llvm-14.0.0~pre20211103.g1febf42f03f664-1.fc34.x86_64/usr/lib64/libLLVM-14.so
      Added back patch file
      Rebased with new patches from rawhide that weren't yet in the streamline branch
      Fix RPM build errors: File not found: /builddir/build/BUILDROOT/llvm-14.0.0~pre20211103.g1febf42f03f664-1.fc34.x86_64/usr/lib64/libLLVM-14.so
      Disable LTO for anything older than Fedora 34
      Use llvm_snapshot_version_suffix
      Remove patch for https://reviews.llvm.org/D108332 which is already upstream
      Only package cmake-devel when building a snapshot package and when NOT building in compat mode
      Fix RPM build
      Fix Macro expanded in comment on line 586: %{_libdir}/libLLVM-%{maj_ver}
      Fix rpm build warning/error: absolute symlink
      Default to DWARF4
      Merge remote-tracking branch 'upstream/rawhide' into upstream-snapshot
      Rebased patched on pagure/streamline
      Merge remote-tracking branch 'upstream/rawhide' into upstream-snapshot
      Added 0004-PATCH-clang-Revert-cmake-Don-t-install-plugins-used-.patch
      Revert "Added 0004-PATCH-clang-Revert-cmake-Don-t-install-plugins-used-.patch"
      Workaround linker error: memory exhausted
      Merge remote-tracking branch 'upstream/rawhide' into upstream-snapshot
      Added pgo_instrumented_build cmake args
      Fix /usr/bin/ld: cannot find /usr/lib64/clang/13.0.0/lib/linux/libclang_rt.profile-x86_64.a: No such file or directory
      Move bcond in cmake down in case we want to override stuff
      Make llvm use the llvm-snapshot-builder as well
      Use %{llvm_snapshot_extra_source_tags} macro
      Merge remote-tracking branch 'upstream/rawhide' into upstream-snapshot
      Merge remote-tracking branch 'upstream/rawhide' into upstream-snapshot
      Patch renewal from rebased llvm-project pagure/streamline branch
      Try to lock llvm* and clang* packages so that we don't install LLVM from a previous copr build
      Revert "Try to lock llvm* and clang* packages so that we don't install LLVM from a previous copr build"
      Rebase onto pagure/main
      Merge remote-tracking branch 'upstream/rawhide' into upstream-snapshot
      use llvm+cmake tarballs instead of big llvm-project and close unclosed %if
      Fixup: clang->cmake
      Move globals down for them to be expanded correctly
      Fix merge issue with patch
      Test without some patches
      Compiles and installs again
      Adapt to standalone third-party dir
      bring back files to llvm-googletest package
      fixing path to unittest
      Manually add https://reviews.llvm.org/D137890
      Add missing patch files
      Apply patchfiles independently for llvm and third-party dir
      List third-party gmock/gtest files in install
      Merge remote-tracking branch 'origin/rawhide' into upstream-snapshot
      Re-enable patches for gtest
      Disable LTO to speed up builds
      Added libLLVMTestingAnnotations.a to googletest subpackage
      Merge remote-tracking branch 'origin/rawhide' into upstream-snapshot

Nikita Popov (1):
      Sync with rawhide

Tom Stellard (13):
      Add patch to fix some lit test failures
      Revert "Add patch to fix some lit test failures"
      Add a patch from main branch to fix some lit tests
      Revert "Add a patch from main branch to fix some lit tests"
      Remove patch applied upstream
      Remove another upstreamed patch
      Add llvm-googletest dependency to llvm-devel
      Add JITLink patch to fix clang failures on aarch64 with libgcc-13
      Revert "Add JITLink patch to fix clang failures on aarch64 with libgcc-13"
      Fix a test failure on s390x
      Revert "Fix a test failure on s390x"
      copr: Install llvm-snapshot-builder from the local COPR project
      Sync with rawhide

sergesanspaille (1):
      Rebase downstream patches
2023-08-09 11:54:07 -03:00