Skip to content

macOS: Universal2 build fails on SSE2 #334

@ax3l

Description

@ax3l

Hi,

We ship openPMD-api as binary wheels for python users containing c-blosc for postprocessing tasks.

With ARM being strong with the Apple M1 processors, we want to build universal2 wheels that contain both x86_64 and arm64 code. We produce them on macOS 11.0 x86_64 GitHub actions runners.

Multi-arch builds for macOS are very easy with CMake, we just need to set:

export CMAKE_OSX_ARCHITECTURES="arm64;x86_64"

Unfortunately, c-blosc SSE2 breaks the build for SSE2. The only alternative I have is to disable SSE2 acceleration altogether at the moment, which means that x86_64 code in the universal binary will not be accelerated either. Is there maybe a way to make this more flexible? :)

Refs.: https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary

X-ref: openPMD/openPMD-api#1233

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions