超级Duper万能双星

2020-07-07 16:59:23

过去几天我反复被问到的一个问题是,既然AARM(苹果ARM)已经成为一种东西,那么最终的ARM-Intel-PowerPC通用二进制程序有可能吗?当然是了!事实上,苹果已经证明你可以使用五路二进制,即ARM64、32位PowerPC、64位PowerPC、i386和x86_64。只要把它们分开做,然后一起给它们注脂就行了。但它实际上比这更令人惊叹,因为你可以有多个子类型。除了通用的PPC或PPC64,您还可以拥有专门在G3(Ppc750)、G4(ppc7400或ppc7450)或G5(Ppc970)上运行的二进制文件。具体地说,G5子类型可以是32位或64位。我知道这是可能的,因为LAMEVMX已经是一个三头二进制文件,可以在运行时从单个文件中选择非SIMD G3、AltiVec G4或特殊的Superduper AltiVec G5版本。我没有在TenFourFox中这样做的主要原因是,生成的可执行文件会非常庞大(比如超过500MB)。但ARM有一个更令人眼花缭乱的子类型阵列,至少有9个,而新的AARM Mac中的Apple ARM可能会是它自己的一个特殊的子类型。这意味着从理论上讲,超级Duper通用二进制文件(#34;SDUB&34;)可能具有以下所有条件:这可能是一个17路二进制文件。最好的部分是每个单独的子部分可以链接到不同的Mac OS X/MacOS SDK,所以PowerPC子部分可以链接到10.4,i386子部分可以链接到10.4到10.6,x86_64子部分可以链接到10.4到10.15(+/-Haswell子类型),各种怪异的ARM子部分可以链接到与相应iOS版本相关的MacOS SDK,AARM Mac特定的子部分可以链接到11.0。根据平台已知的子类型,可能需要使用多台机器或Xcode在多个阶段一起对其进行脂化,但在此之后,代码签名和/或公证您应该拥有能够在这些系统中的任何系统上运行的最终Super Duper通用二进制代码。现在,对某些人来说,这是一个挑战。我期待着其中一个开发人员过渡工具包在这里得到很好的使用。