OpenMPI Builds for MacOS 10.8 and Earlier, Targetting GCC

Christopher Jones jonesc at hep.phy.cam.ac.uk
Tue May 4 18:24:52 UTC 2021


Hi

Thats very out out date. The as provided by the cctools port either uses a new LLVM build, or just wraps the Xcode tools on the most recent systems. It supports AVX just fine.

Chris

> On 4 May 2021, at 7:17 pm, Christopher Nielsen <mascguy at rochester.rr.com> wrote:
> 
> Based on the following ticket, it sounds as if GCC is utilizing Apple’s assembler by default?
> 
> cctools as does not support AVX, consider using llvm: https://trac.macports.org/ticket/37846 <https://trac.macports.org/ticket/37846>
> 
> The suggested fix - albeit from 3 years ago - requires manually selecting clang, via ‘port select’. Is that still accurate? Are there any other clean ways to fix this, apart from disabling use of AVX instructions?
> 
> 
>> On 2021-05-04-T, at 12:45, Christopher Nielsen <mascguy at rochester.rr.com <mailto:mascguy at rochester.rr.com>> wrote:
>> 
>> I’m currently reviewing the build logs for openmpi-* subports, which are failing to build for older MacOS releases.
>> 
>> And it looks like the issue relates to the use of the various AVX* instruction sets:
>> 
>>   CCLD     liblocal_ops_avx2.la <http://liblocal_ops_avx2.la/>
>> <stdin>:1015:20: error: invalid operand for instruction
>>         vmovdqu64       (%rdi), %ymm0
>>                                 ^~~~~
>> <stdin>:1019:12: error: invalid operand for instruction
>>         vmovdqu64       %ymm0, -32(%rsi)
>>                         ^~~~~
>> <stdin>:1127:20: error: invalid operand for instruction
>>         vmovdqu64       (%rdi), %ymm0
>>                                 ^~~~~
>> <stdin>:1131:12: error: invalid operand for instruction
>>         vmovdqu64       %ymm0, -32(%rsi)
>>                         ^~~~~
>> […etc…]
>> 
>> We can fix the problem by disabling use of those instructions, via a configure flag. The simplest approach would be to disable them across-the-board, albeit with a slight performance penalty. Or we can add conditional logic to disable them for those older releases.
>> 
>> There’s something curious though: These instructions are supported for GCC 5 and 6, on MacOS 10.8. But GCC releases from 7 on, don’t seem to. (All GCC releases are working for later MacOS releases, though.)
>> 
>> So… do our GCC 7+ releases for MacOS 10.8 and earlier, not include AVX* support? If not, would it be feasible to patch them?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20210504/03b232d0/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1930 bytes
Desc: not available
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20210504/03b232d0/attachment.bin>


More information about the macports-dev mailing list