os.major etc. on Linux

Ryan Schmidt ryandesign at macports.org
Fri May 13 01:54:26 PDT 2016


On May 13, 2016, at 3:48 AM, Joshua Root wrote:

> On 2016-5-13 18:13 , Ryan Schmidt wrote:
>> 
>> On May 13, 2016, at 3:07 AM, René J.V. Bertin wrote:
>> 
>>> On Friday May 13 2016 15:21:53 Joshua Root wrote:
>>> 
>>>>>> Side-ways related: why is os_arch reset to i386 from x86_64 on line 636? >From what I've seen that causes packages to be labelled and registered as i386 (i.e. 32bit) when built on 64bit linux.
>>>>> 
>>>>> In MacPorts, os_arch is i386 on all Intel Macs (32-bit and 64-bit), and ppc on all PowerPC Macs (32-bit and 64-bit). Changing that now would break all ports that rely on the existing long-standing behavior.
>>> 
>>> I was just asking why, apparently that's a historic choice that was made when 64-bit Intel Macs weren't on the horizon yet?
>> 
>> os_arch is the way ports and probably MacPorts base differentiates an Intel computer from a PowerPC computer. It is not a mechanism to determine the bitness; if you need to determine bitness, use other methods, such as build_arch and universal_archs. build_arch and universal_arch determines how a package is registered when installed; os_arch doesn't enter into it, as far as I know.
> 
> If build_arch is not set then os.arch is used as a fallback. No doubt we don't detect an appropriate default for build_arch on Linux.

Yes I see in get_canonical_archs in src/port1.0/portutil.tcl where it uses os.arch if build_arch is empty.

And I see in src/macports1.0/macports.tcl where it sets defaults for build_arch only on Darwin.




More information about the macports-dev mailing list