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>
While these macros were previously shipped as a subpackage of
python-rpmautospec, they do not depend on the Python module, and the
rest of that package includes dependencies not wanted in RHEL/ELN (such
as koji).
The package redefines %optflags on i686 and s390x, so the
%__build_for_lang_* macros are no longer expanded, triggering
a warning from RPM (“%__build_for_lang_any defined but not
used within scope”). Clang warns about -Wno-complain-wrong-lang
with -Wall, so the warning option is suppressed for
"%toolchain" != "gcc".
Reported-by: Tulio Magno Quites Machado Filho <tuliom@ascii.art.br>