Skip to content

Please tag a release including the updated PLINK dependency (arm64 support) #381

Description

@BenjaminDEMAILLE

The last tagged release, 2.3.5, is from September 2021 and still carries the pre-2023 copy of the PLINK 1.9 code in lib/plink_common.hpp. That copy requires SSE2 and refuses to build on any 64-bit non-x86 target:

#error "64-bit builds currently require SSE2.  Try producing a 32-bit build instead."

On arm64 the compiler gets past that only to fail inside the x86 intrinsic headers:

/usr/lib/clang/21/include/mmintrin.h:865:22: error: use of undeclared identifier '__builtin_ia32_psllq128'

master fixed this in bccc59e8, which took the newer PLINK 1.9 with its SIMDe fallback and vendored lib/simde. Building master on macOS arm64 works, and gives identical results to an x86 build on my test data.

The fix has been unreleased for two years, so anyone installing from a release tarball on Apple Silicon or arm64 Linux, which now covers most new Macs and a growing share of HPC nodes, has to patch the source themselves. I am packaging PRSice-2 for Homebrew (Homebrew/homebrew-core#311925) and currently carry that patch in the formula.

Would you consider tagging a release from the current master? It would let packagers drop the workaround, and it would put arm64 support in the hands of users who install from tarballs.

Two smaller build fixes are in #380 if they are useful for such a release.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions