Commit graph

582 commits

Author SHA1 Message Date
Nikita Popov
494a04c902 Move patches and sources into main spec file
This way all the dependencies are listed in the main spec file.
Given how small these are, I don't think there's benefit to
having them split out.
2024-07-24 07:20:03 +00:00
Nikita Popov
1dd985a086 Disable marshalparser on RHEL 8 2024-07-18 13:32:25 +00:00
Nikita Popov
d3496ff556 Fix copr check
Per https://docs.pagure.org/copr.copr/user_documentation.html#rpm-macros
the `%copr_username` macro includes `@` at the start.
2024-07-15 09:13:31 +02: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
323ee2723e lldb: fix ModuleNotFoundError: No module named 'pexpect'
We've seen a lot of tests that were missing the pexpect python module
and that resulted in a state of
[`UNRESOLVED`](https://llvm.org/docs/CommandGuide/lit.html).
2024-07-10 12:52:49 +00:00
Konrad Kleine
b79ab4f3cc Remove timestamp prefix in log lines
With the llvm-build-stats we have what we wanted.
2024-07-09 19:04:48 +00:00
Konrad Kleine
5ce95c133e lld: move ldconfig_scriptlets into llvm.spec 2024-07-09 18:55:12 +00:00
Konrad Kleine
b167b820db lldb: add BuildRequires: procps-ng
This is to mitigate `/bin/sh: line 1: ps: command not found` in the
build logs.
2024-07-09 18:55:12 +00:00
Konrad Kleine
86fec774e2 Move all BuildRequires: tags to llvm.spec
See
https://src.fedoraproject.org/rpms/llvm/pull-request/234#comment-206917
2024-07-02 21:29:41 +00:00
Konrad Kleine
a34b2a7947 Format all files with 'pre-commit run -a' 2024-06-25 12:22:22 +02:00
Tulio Magno Quites Machado Filho
b9e4db6642 Fix rhbz #2248872
Ensure the versioned llvm-config alternative gets removed during major
upgrades of the non-compat package.

Also add code that removes the versioned llvm-config alternatives of
the previous 3 LLVM versions. These versions didn't remove their own
versioned llvm-config alternative, leading to broken output, e.g.
llvm-config-16 points to llvm-config-64 from LLVM 17.
2024-05-21 12:18:51 +00:00
Konrad Kleine
ead79795eb Inline %post and %postun code for llvm-devel 2024-05-08 11:04:38 +00:00
Konrad Kleine
94e85e9ee1 Explicitly name %ldconfig_scriptlets for llvm-libs package 2024-05-08 11:03:59 +00:00
Konrad Kleine
e44d92df5c More explicit %postun and %post scriptlets 2024-05-06 09:00:19 +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
Nikita Popov
19db1ff8da Switch from recommonmark to myst-parser 2023-09-26 08:58:16 +02:00
Tulio Magno Quites Machado Filho
db0e8c2bbf Temporarily disable a failing test on ppc64le
ld.gold is crashing with an internal error.
Disable this test temporarily while the issue is being investigated and
fixed.

(cherry picked from commit bf19c70bc0)
2023-08-24 14:07:09 +02:00
Nikita Popov
2508552b6b Don't set LLVM_UNITTEST_LINK_FLAGS for snapshot builds
Snapshot builds don't use LTO, so we should not set these linker
flags either.
2023-08-14 08:40:52 +02:00
Nikita Popov
9c4442b779 Merge branch 'rawhide' into upstream-snapshot 2023-08-11 15:15:18 +02:00
Tulio Magno Quites Machado Filho
2ec945401e Enable LLVM_UNREACHABLE_OPTIMIZE temporarily
This has been causing issues when building clang.  Enable it temporarily
until the root cause is found and fixed.
2023-08-09 11:54:46 -03: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
Nikita Popov
5e22fb4ab6 Don't drop LDFLAGS for shared libraries
From the corresponding c9s fix:
b758d604f4
2023-08-08 16:51:16 +02:00
Tulio Magno Quites Machado Filho
d180d56a78 Remove pkg_bindir and pkg_libdir
Replace them witn install_bindir and install_libdir respectively.
2023-08-03 19:30:40 +00:00
Tulio Magno Quites Machado Filho
b5d6c1ccf0 Simplify a few %files entries
This is also deduplicating a small list of %files entries by replacing
the variable used to build their path.
2023-08-03 19:30:40 +00:00
Nikita Popov
2abc096557 Use build_cflags when setting ASMFLAGS
While the current implementation works on Fedora, on c9s/rhel
the CFLAGS haven't been set at this point yet, so we are missing
the -fcfprotection flag in ASMFLAGS. Using build_cflags avoids
this ordering problem.

Additionally, add -Wl,-z,cet-report=error to the libLLVM.so linker
flags, so we can detect such issues earlier in the future.
2023-08-03 19:29:38 +00:00
Tulio Magno Quites Machado Filho
dd44fc12ea Fix rhbz #2224885 2023-07-31 17:19:01 -03:00
Fedora Release Engineering
f9f0fb07de Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 12:55:16 +00:00
Tulio Magno Quites Machado Filho
f9133b98bb Bump the release version 2023-07-10 18:38:50 -03:00
Nikita Popov
bdb4929ebd Use LLVM_UNITTEST_LINK_FLAGS to reduce link times for unit tests
We currently spend a lot of time performing LTO on unit tests,
which is largely wasted effort. We can't disable LTO entirely,
because we don't have fat objects, but at least we can disable
post-link optimization.

For my local build, this reduces time in %build by about 30%.
2023-07-07 07:20:18 +00:00
Tulio Magno Quites Machado Filho
cd99de7d35 Improve clang assembler error messages on s390x (rhbz#2216906)
Backport a patch from LLVM 17 that improves error messages from the
Clang assembler on s390x.

Also, disable LLVM_UNREACHABLE_OPTIMIZE in order to improve error
messages when llvm_unreachable() is called. There are many cases where
llvm_unreachable() is used as a error reporting function instead of the
recommended replacement for assert().

Fixes rhbz#2216906.
2023-07-03 15:09:05 -03:00
Tulio Magno Quites Machado Filho
61b03e8d59 Update to LLVM 16.0.6 2023-06-15 07:41:00 -03:00
Nikita Popov
236eac9d27 Split off llvm-cmake-utils package 2023-06-15 08:58:02 +02:00
Tulio Magno Quites Machado Filho
ba5f101283 Update to LLVM 16.0.5 2023-06-05 14:26:35 -03:00
Nikita Popov
340b9e8ea3 Sync with rawhide 2023-05-26 11:41:49 +02:00
Yaakov Selkowitz
bcf7ece4a8 Avoid recommonmark dependency in RHEL builds
python-recommonmark and its dependencies are unwanted in RHEL.
2023-05-22 11:57:51 -04:00
Tom Stellard
60cc1b3651 Sync with rawhide 2023-05-19 13:17:48 +00:00
Tulio Magno Quites Machado Filho
85d29458f2 Update to LLVM 16.0.4 2023-05-18 21:54:20 -03:00
Tulio Magno Quites Machado Filho
f98e61f997 Update to LLVM 16.0.3 2023-05-09 17:54:23 -03:00
Tulio Magno Quites Machado Filho
193ba1355d Update to LLVM 16.0.2 2023-04-25 17:19:37 -03:00
Tom Stellard
d6e01df1e8 Revert "Fix a test failure on s390x"
This reverts commit 9a451905d0.

A fix has been merged upstream.
2023-04-22 04:07:44 +00:00
Tom Stellard
9a451905d0 Fix a test failure on s390x 2023-04-19 23:09:05 +00:00
Nikita Popov
96037cf8ba Remove unused sources 2023-04-14 17:22:13 +02:00
Tulio Magno Quites Machado Filho
072d2198fb Update to LLVM 16.0.1 2023-04-12 17:39:44 +00:00
Jan200101
f51436a734
Stop installing gtest on compat builds 2023-04-12 14:13:53 +02:00
Tulio Magno Quites Machado Filho
a4982d84f3 Stop distributing /usr/share/llvm/src/utils 2023-03-24 09:07:18 -03:00
Tulio Magno Quites Machado Filho
a13a3551eb Distribute libllvm_gtest.a and libllvm_gtest_main.a with llvm-googletest 2023-03-24 09:04:53 -03:00
Tulio Magno Quites Machado Filho
0cd1abca26 Update to LLVM 16.0.0 2023-03-20 17:04:41 -03:00
Tulio Magno Quites Machado Filho
2f72d026a3 Fix the ppc64le triple 2023-03-16 22:07:43 -03:00
Tulio Magno Quites Machado Filho
cc36c0869b Update to LLVM 16.0.0 RC4 2023-03-15 08:41:45 -03:00
Tulio Magno Quites Machado Filho
55d7730bb8 Fix llvm-exegesis failures on s390x 2023-03-15 08:41:45 -03:00