Behave more consistently when target %%optflags are not defined (#2231727)
This commit is contained in:
parent
4eff63bcb6
commit
88f6201129
@ -0,0 +1,53 @@
|
|||||||
|
From b1c99cc21dd8dc984734cd2a66e48a5676280dee Mon Sep 17 00:00:00 2001
|
||||||
|
Message-ID: <b1c99cc21dd8dc984734cd2a66e48a5676280dee.1692617135.git.pmatilai@redhat.com>
|
||||||
|
From: Panu Matilainen <pmatilai@redhat.com>
|
||||||
|
Date: Mon, 21 Aug 2023 13:42:43 +0300
|
||||||
|
Subject: [PATCH] Behave more consistently when target arch %optflags are not
|
||||||
|
defined
|
||||||
|
|
||||||
|
You're about to fall into a deep dark hole, proceed at your own risk.
|
||||||
|
|
||||||
|
When building for a target architecture with no defined %optflags
|
||||||
|
(such as noarch), one would think that %optflags would be empty. Not so in
|
||||||
|
rpm, instead we get %optflags for the detected architecture, and there
|
||||||
|
are packages which rely on this behavior. And in this particular dark
|
||||||
|
corner, buildarchtranslate is not applied so one can get drastically
|
||||||
|
different %optflags than you'd get without an explicit --target, on the
|
||||||
|
same system. Which can break builds.
|
||||||
|
|
||||||
|
None of this makes any sense whatsoever, but lets at least try to be
|
||||||
|
consistent about it. When we fall back to detected architecture
|
||||||
|
%optflags, at least use the ones after buildarchtranslate to return
|
||||||
|
consistent data within a host.
|
||||||
|
|
||||||
|
This supposedly fixes the case where our newly added x86_64
|
||||||
|
subarchitecture definitions haven't been overridden in vendor config and
|
||||||
|
somebody's noarch package uses cmake to install data, and falls over due
|
||||||
|
to nonsensical optflags from rpm. Or something like that.
|
||||||
|
|
||||||
|
Initial report: https://bugzilla.redhat.com/show_bug.cgi?id=2231727
|
||||||
|
---
|
||||||
|
lib/rpmrc.c | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/rpmrc.c b/lib/rpmrc.c
|
||||||
|
index 8a829709b..f8a7aee8c 100644
|
||||||
|
--- a/lib/rpmrc.c
|
||||||
|
+++ b/lib/rpmrc.c
|
||||||
|
@@ -1685,6 +1685,13 @@ static void rpmRebuildTargetVars(rpmrcCtx ctx,
|
||||||
|
* XXX Make sure that per-arch optflags is initialized correctly.
|
||||||
|
*/
|
||||||
|
{ const char *optflags = rpmGetVarArch(ctx, RPMVAR_OPTFLAGS, ca);
|
||||||
|
+ /*
|
||||||
|
+ * If not defined for the target arch, fall back to current arch
|
||||||
|
+ * definitions, with buildarchtranslate applied.
|
||||||
|
+ */
|
||||||
|
+ if (optflags == NULL) {
|
||||||
|
+ optflags = rpmGetVarArch(ctx, RPMVAR_OPTFLAGS, NULL);
|
||||||
|
+ }
|
||||||
|
if (optflags != NULL) {
|
||||||
|
rpmPopMacro(NULL, "optflags");
|
||||||
|
rpmPushMacro(NULL, "optflags", NULL, optflags, RMIL_RPMRC);
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
6
rpm.spec
6
rpm.spec
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
%global rpmver 4.18.92
|
%global rpmver 4.18.92
|
||||||
#global snapver rc1
|
#global snapver rc1
|
||||||
%global baserelease 1
|
%global baserelease 2
|
||||||
%global sover 10
|
%global sover 10
|
||||||
|
|
||||||
%global srcver %{rpmver}%{?snapver:-%{snapver}}
|
%global srcver %{rpmver}%{?snapver:-%{snapver}}
|
||||||
@ -139,6 +139,7 @@ rpm-4.18.92-disable-sysusers.patch
|
|||||||
rpm-4.18.90-weak-user-group.patch
|
rpm-4.18.90-weak-user-group.patch
|
||||||
|
|
||||||
# Patches already upstream:
|
# Patches already upstream:
|
||||||
|
0001-Behave-more-consistently-when-target-arch-optflags-a.patch
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
# These are not yet upstream
|
# These are not yet upstream
|
||||||
@ -612,6 +613,9 @@ fi
|
|||||||
%doc %{_defaultdocdir}/rpm/API/
|
%doc %{_defaultdocdir}/rpm/API/
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Aug 21 2023 Panu Matilainen <pmatilai@redhat.com> - 4.18.92-2
|
||||||
|
- Behave more consistently when target %%optflags are not defined (#2231727)
|
||||||
|
|
||||||
* Wed Aug 02 2023 Michal Domonkos <mdomonko@redhat.com> - 4.18.92-1
|
* Wed Aug 02 2023 Michal Domonkos <mdomonko@redhat.com> - 4.18.92-1
|
||||||
- Update to 4.19 beta
|
- Update to 4.19 beta
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user