Commit Graph

13 Commits

Author SHA1 Message Date
Nikita Popov
ad9f519879 Add support for bundle_compat_lib 2024-09-03 08:20:41 +02:00
Nikita Popov
5218c9a2fb Add compiler-rt patch for RHEL 8 page sizes
RHEL 8 uses different page sizes, and we need to patch the CFI
implementation to use those.
2024-09-03 08:20:32 +02:00
Nikita Popov
05f7af9c0d Add python-lit, remove patch, change obsoletes version 2024-09-03 08:19:37 +02:00
Nikita Popov
8fe6e008ba Fix prep 2024-09-03 08:14:23 +02:00
Nikita Popov
712adc2eb0 Patch back in Python 3.6 support on RHEL 8 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
c89b2b03b0 Avoid building lldb docs
This should fix this error:

```
Jul 01 12:48:27 FAILED: tools/lldb/docs/CMakeFiles/docs-lldb-html
/home/fedora/src/llvm-rpms/llvm-big-merge/BUILD/llvm-project-e19ac0dcfd7357161210f157ed0559836e88155f/llvm/redhat-linux-build/tools/lldb/docs/CMakeFiles/docs-lldb-html
Jul 01 12:48:27 cd
/home/fedora/src/llvm-rpms/llvm-big-merge/BUILD/llvm-project-e19ac0dcfd7357161210f157ed0559836e88155f/llvm/redhat-linux-build/tools/lldb/docs
&& /usr/bin/cmake -E env
LLDB_SWIG_MODULE=/home/fedora/src/llvm-rpms/llvm-big-merge/BUILD/llvm-project-e19ac0dcfd7357161210f157ed0559836e88155f/llvm/redhat-linux-build/tools/lldb/docs
/usr/bin/sphinx-build-3 -b html -d
/home/fedora/src/llvm-rpms/llvm-big-merge/BUILD/llvm-project-e19ac0dcfd7357161210f157ed0559836e88155f/llvm/redhat-linux-build/tools/lldb/docs/_doctrees-lldb-html
-q -t builder-html -D version=19 -D release=mainline
/home/fedora/src/llvm-rpms/llvm-big-merge/BUILD/llvm-project-e19ac0dcfd7357161210f157ed0559836e88155f/lldb/docs
/home/fedora/src/llvm-rpms/llvm-big-merge/BUILD/llvm-project-e19ac0dcfd7357161210f157ed0559836e88155f/llvm/redhat-linux-build/tools/lldb/docs/html
Jul 01 12:48:27
Jul 01 12:48:27 Extension error:
Jul 01 12:48:27 Could not import extension sphinx_automodapi.automodapi
(exception: No module named 'sphinx_automodapi')
Jul 01 12:48:27 install sphinx_automodapi with /usr/bin/python3 -m pip
install sphinx_automodapi
Jul 01 12:48:27 install sphinx furo theme with /usr/bin/python3 -m pip
install furo
```

the two python modules are not in fedroa unfortunately.
2024-09-02 15:45:30 +02:00
Konrad Kleine
572039ea86 Add lldb to big-merge
See https://github.com/fedora-llvm-team/llvm-snapshots/issues/573
2024-09-02 15:45:30 +02:00
Nikita Popov
99dd05a90b Remove fedora 38 related workarounds
This chroot is no longer supported on copr.
2024-09-02 15:45:30 +02:00
Konrad Kleine
bee7a61730 Fix ModuleNotFoundError: No module named 'myst_parser'
This should fix this error which appears on RHEL only:

```
Configuration error:
There is a programmable error in your configuration file:

Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/sphinx/config.py", line 326, in eval_config_file
    execfile_(filename, namespace)
  File "/usr/lib/python3.9/site-packages/sphinx/util/pycompat.py", line 88, in execfile_
    exec(code, _globals)
  File "/builddir/build/BUILD/llvm-project-c1d5cc99c6ba8e897ea145dbb2221a155b5e3e5a/llvm/redhat-linux-build/tools/clang/docs/conf.py", line 42, in <module>
    import myst_parser
ModuleNotFoundError: No module named 'myst_parser'
```

See also https://github.com/fedora-llvm-team/llvm-snapshots/issues/492
2024-09-02 15:45:30 +02:00
Konrad Kleine
a977a8b36b Apply lld patch 2024-09-02 15:45:30 +02:00
Tom Stellard
78e75c3e5a Rebase 0001-Restore-fopenmp-implicit-rpath-disabled-by-default.patch
And only apply it on f38, it's not needed on newer Fedoras.
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