Skip to content

Build for linux aarch64 #90

@arcman7

Description

@arcman7

My goal is to install this package on an aarch64 linux machine.

Illegal instruction
This error appears if your CPU does not support the AVX2 instruction set. We do not ship builds for different CPUs so you need to build the package yourself:

pip3 install git+https://github.com/src-d/lapjv

When I runpip3 install git+https://github.com/src-d/lapjv:

ubuntu@192-222-57-171:~/gs-file-system-us-east-3/app$ pip3 install git+https://github.com/src-d/lapjv
Defaulting to user installation because normal site-packages is not writeable
Collecting git+https://github.com/src-d/lapjv
  Cloning https://github.com/src-d/lapjv to /tmp/pip-req-build-p2nt0kxk
  Running command git clone --filter=blob:none --quiet https://github.com/src-d/lapjv /tmp/pip-req-build-p2nt0kxk
  Resolved https://github.com/src-d/lapjv to commit ba122252b8cfc955bd68ceeb6a54d6608343568b
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.20.0 in /usr/lib/python3/dist-packages (from lapjv==1.3.27) (1.21.5)
Building wheels for collected packages: lapjv
  Building wheel for lapjv (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for lapjv (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [12 lines of output]
      running bdist_wheel
      running build
      running build_ext
      creating build
      creating build/temp.linux-aarch64-3.10
      aarch64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/lib/python3/dist-packages/numpy/core/include -I/usr/include/python3.10 -c python.cc -o build/temp.linux-aarch64-3.10/python.o -fopenmp -std=c++17 -mavx2 -ftree-vectorize -march=haswell -maes -mno-pku -mno-sgx --param l1-cache-line-size=64 --param l1-cache-size=32 --param l2-cache-size=33792 -mabm
      aarch64-linux-gnu-gcc: error: unrecognized command-line option ‘-mavx2’
      aarch64-linux-gnu-gcc: error: unrecognized command-line option ‘-maes’
      aarch64-linux-gnu-gcc: error: unrecognized command-line option ‘-mno-pku’
      aarch64-linux-gnu-gcc: error: unrecognized command-line option ‘-mno-sgx’
      aarch64-linux-gnu-gcc: error: unrecognized command-line option ‘-mabm’
      error: command '/usr/bin/aarch64-linux-gnu-gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for lapjv
Failed to build lapjv
ERROR: Could not build wheels for lapjv, which is required to install pyproject.toml-based projects

I see these flags being used:

-mavx2 -maes -mabm -mno-pku -mno-sgx -march=haswell

Those flags enable AVX2/SSE instructions that simply do not exist on Arm chips. Should I simply be using pyLAPJV instead? Or is it feasible to use some workarounds or build flags to build this for aarch64?

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