Due to a bug in meson (https://github.com/mesonbuild/meson/issues/13278),
--config is erronously stripped from LDFLAGS if it's a separate argument.
Let's make it a single argument instead to work around the issue in meson.
Ensure %_sourcedir and %_builddir are absolute paths,
as %mkbuilddir will change directories and relative paths will no longer be the same.
Explicitly disable debuginfo packages,
as the test does not work with them
yet they were only implicitly disabled by not using %setup
(which no longer works that way in RPM 4.20+).
Co-authored-by: Michal Domonkos <mdomonko@redhat.com>
Don't assume the build happens directly in $PWD,
this is no longer true.
Instead, properly %prep the sources.
Explicitly disable debuginfo packages,
as the test does not work with them
yet they were only implicitly disabled by not using %setup
(which no longer works that way in RPM 4.20+ and %setup is now used anyway).
Co-authored-by: Michal Domonkos <mdomonko@redhat.com>
It's confusing to see a package that says that it's for Red Hat installed
in a Fedora installation. For historical reasons, this package is named
"redhat-*", and it'd be complicated to change this [1]. By saying that this
is for the "Red Hat _family_" we also give another broader interpratation
to the package name.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1829430
The hyphenation is hard: "Red Hat" is spelled with a space, but we need
hyphens to connect the modifiers to it.
That package provides the file with the macros and will pull in
add-determinism or add-determinism-nopython as appropriate.
(The name is made kept fairly generic in case we want to add
additional parts to it leter, not just a call to add-determinism.)
Currently, when the clang toolchain is used, we use the
brp-llvm-compile-lto-to-elf script to post-process any shipped
object files or static libraries to convert the LLVM bitcode they
contain into ELF object code.
With LLVM 18, Clang has introduced support for fat LTO objects
(https://llvm.org/docs/FatLTO.html), which work essentially the
same way as with GCC: If `-ffat-lto-objects` is passed, then the
objects will contain both the ELF code, as well as the LLVM
bitcode in a special section.
This redhat-rpm-config change enables the use of fat LTO and
drops the brp-llvm-compile-lto-to-elf script. Instead, the
brp-strip-lto script used by GCC also strips the LLVM section
name now.
This is part of https://fedoraproject.org/wiki/Changes/LLVM-18.
https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/277
reverted the requirement for rust-srpm-macros to define %build_rustflags.
Since RHEL's rust package will provide that as a subpackage with its
own versioning scheme rather than rust-packaging's, the version constraint
needs to be dropped.
No conflict because except for %global build_type_safety 0,
the package is still compatibility with GCC 13 (but does not
enforce the type safety levels anymore).
Now that rust-packaging absorbed rust-srpm-macros in Fedora, RHEL rust
will need to provide an srpm-macros subpackage so that no part of
rust-packaging will be pulled into RHEL 10. This will then allow
rust-packaging (minus macros.rust-srpm) to exist in EPEL.
While the change is not correct for upstream. We temporary disable LTO
to lower build times and thus increase general build throughput.
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>