我正在尝试使用-Wa,-noexecstack构建OpenSSL,但在其config命令行中找不到提供此标志的任何地方。我尝试设置CFLAGS,但似乎忽略了它,只是使用了它自己的。
这是一个自动构建的工作,它使用的是OpenSSL源的干净副本,因此一次性破解配置脚本并不是真正的选择。
有没有办法将自定义标志传递给OpenSSL的构建过程?
最佳答案
config
脚本忽略CFLAGS
,但不忽略CC
。因此,您可以指定您的编译器并同时为其提供标志:
export CC="gcc -Wall -DHELLO_WORLD"; ./config
另外,由于
config
自动检测您的平台,然后使用预设的编译器设置运行Configure
,因此您可以将编译器标志添加到平台配置中。例如,对于我的Mac,我第一次运行config
时看到以下行:Operating system: i386-apple-darwinDarwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386
Configuring for darwin-i386-cc
因此,如果我打开
Configure
,我可以搜索darwin-i386-cc
并将标志添加到预设中。如果您没有使用预设配置,则只需将标志直接传递到命令行上的
Configure
,它将使用它们。