rpm - 如何直接在 rpm 规范文件中覆盖 optflags?

标签 rpm rpmbuild rpm-spec

如何正确覆盖%optflags直接在规范文件中?

$ rpm --eval %optflags   # Fedora 29
-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection

我需要更换 -O2来自 -O%optflags宏直接在我的 规范文件 ?我只找到了一个解决方案:
%global optflags %(echo %{optflags} | sed 's/-O[0-3]/-O/')

它是正确的 ?

备注 rpmbuild -ba --define "optflags -O bla bla" my.spec这不是我的情况的解决方案。

最佳答案

您似乎已经找到了部分解决方案。要检查它是否正确,您可以暂时放置

echo %optflags

在规范文件中打印一次值或
%dump

转储所有宏(不确定 optflags 是否会以这种方式打印)

关于rpm - 如何直接在 rpm 规范文件中覆盖 optflags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55974217/

相关文章:

linux - rpmbuild 设置错误的文件所有权说 root :root (wrong owner/group build:users)

ubuntu - 在 Ubuntu 下使用 rpmbuild 构建

linux - 允许来自一个 RPM 包的文件被另一个 rpm 包覆盖

docker - 从二进制文件创建 RPM 包不会将文件打包到存档中

linux - 了解 rpmbuild 的工作原理

packaging - 如何为不同的环境使用相同的路径创建 RPM 子包?

java - 将单个 JAR 文件正确打包为 RPM

rpm - 如何让 rpmbuild 下载特定 .spec 的所有源代码?

linux - 简单 .RPM 中的错误

docker - 我无法在docker容器中安装yum