Gcc 当./configure被赋予冲突选项时,哪个选项获胜?

Gcc 当./configure被赋予冲突选项时,哪个选项获胜?,gcc,configure,autotools,Gcc,Configure,Autotools,我正在使用构建一个交叉编译的gcc,并且可以为./configure步骤提供一些额外的配置选项,而无需修补buildroot源代码。但是,我想覆盖buildroot源已经显式设置的选项。具体而言,buildroot源具有: $(GCC_SRC_DIR)/configure $(QUIET) \ --prefix=/usr \ ... --disable-__cxa_atexit \ ... $(EXTRA_GCC_CONFIG_OPTIONS) 我希望将--enable-\ucxa\uAtex

我正在使用构建一个交叉编译的gcc,并且可以为./configure步骤提供一些额外的配置选项,而无需修补buildroot源代码。但是,我想覆盖buildroot源已经显式设置的选项。具体而言,buildroot源具有:

$(GCC_SRC_DIR)/configure $(QUIET) \
--prefix=/usr \
...
--disable-__cxa_atexit \
...
$(EXTRA_GCC_CONFIG_OPTIONS)
我希望将
--enable-\ucxa\uAtexit
放入
$EXTRA\uGCC\uConfig\u选项中,这是我的荣幸

我猜想,如果buildroot的makefile设计得足够好,那么事实上就会发生这种情况。但我正在尝试验证这一点(在文档中,不是通过尝试和错误),并且很难找到将冲突选项传递给./configure脚本时发生的任何规范

所有基于Autotool的配置脚本是否都以相同的方式处理此问题?或者gcc可以用一种方式处理它,而(例如)binutils可以用另一种方式处理它


我想其他人会在我之前找到这件事。但是我的google fu和SO fu没有出现任何问题。

相关文档来自GNU编码标准和Autoconf手册


它们没有提到相互冲突的选项,因此我们只需在生成的
configure
脚本中检查shell代码。我用Autoconf 2.69编写的脚本只需按顺序处理
--enable foo
--disable foo
选项,并分配给
enable\u foo
,因此后一个选项就是赢家。

Autoconf
非常灵活,可使用性非常好,多年来,成千上万的开发人员滥用它,以至于
configure
脚本几乎没有一致性。在所有生成的
configure
脚本中都不会看到您可能期望的任何行为!