如何最好地设置MACOSX_DEPLOYMENT_TARGET?

9
Perl社区一直依赖于MACOSX_DEPLOYMENT_TARGET=10.3来构建Perl的所有版本,这已经持续了很长时间。但是现在,随着El Capitan beta的发布,它不再起作用了。看起来他们应该将其提高,但提高到什么程度呢?有没有一种程序化设置它为当前操作系统X支持的最早版本?或者有其他动态设置方式吗?还是必须静态更新?如果是后者,那么它对旧版本的操作系统X上的构建会产生什么影响?

我不认识任何人在运行MacOS 10.3...你真的想要支持一个在2003年发布的操作系统吗? - Michael Dautermann
@MichaelDautermann 人们在各种疯狂的配置上测试Perl。这里有一个人,他测试了OS X 10.4以远的版本。 - theory
2个回答

3
这应该是一个相当简单的更改,位于中,检查正在运行的OSX版本并相应地设置。

Perl是一个开源项目,因此开发人员时间总是不够。如果您为此制作补丁并将其提交给p5p,我相信这将受到极大的赞赏。

谢谢,我已在错误报告中推荐了那个解决方案。 - theory

2

接受了@Calle-Dybedahl的答案,因为从技术上讲是正确的。Perl 5核心开发者Jarkko Hietaniemi推出了这个解决方案,它被证明比你一眼看到的要复杂一些。他提出的基本方法是:

对于OS X 10.6或更高版本,请不再使用MACOSX_DEPLOYMENT_TARGET,工具链应该可以正常工作。到目前为止,部署目标被硬编码为10.3。这个逻辑来自RT#117433

对于从10.3到10.5的OS X版本,没有变化,仍然使用MACOSX_DEPLOYMENT_TARGET=10.3进行链接。

对于10.3之前的OS X版本,没有变化,仍然不使用MACOSX_DEPLOYMENT_TARGET=10.3

新增:如果设置了环境变量$MACOSX_DEPLOYMENT_TARGET,则始终将-mmacosx-version-min添加到ccflagsldflags中。如果未设置变量,则从sw_vers(1)中的OS X版本设置最小值。设置该变量对于为早期OS X版本构建和打包Perl的人来说应该很方便。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接