SEAL can be found only for x86 on aarch64
Description If you want to install with "pip install ." on an Raspberry Pi 4 (aarch64), you are receiving the following error message:
aarch64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.11 -I/home/skriesch/homomorphic/lib/python3.11/site-packages/numpy/_core/include -IPyfhel -IPyfhel/Afhel -IPyfhel/SEAL/SEAL/seal -I/home/skriesch/homomorphic/include -I/usr/include/python3.11 -c Pyfhel/Afhel/Afseal.cpp -o build/temp.linux-aarch64-cpython-311/Pyfhel/Afhel/Afseal.o -std=c++17 -O3 -DHAVE_CONFIG_H
In file included from Pyfhel/Afhel/../SEAL/SEAL/seal/defines.h:68,
from Pyfhel/Afhel/../SEAL/SEAL/seal/bigpoly.h:8,
from Pyfhel/Afhel/../SEAL/SEAL/seal/seal.h:3,
from Pyfhel/Afhel/Afseal.h:41,
from Pyfhel/Afhel/Afseal.cpp:37:
Pyfhel/Afhel/../SEAL/SEAL/seal/gcc.h:20:10: fatal error: x86intrin.h: No such file or directory
20 | #include <x86intrin.h>
| ^~~~~~~~~~~~~
compilation terminated.
Code To Reproduce Error
- Clone the repo
- Set the Python environment
- Enter "pip install ."
- SEAL can not be built for aarch64
Expected behavior SEAL will be built
Workaround Clone the MS SEAL Project and build for aarch64
Setup:
- OS: Raspberry OS
- Python: 3.11.2-1+b1 (arm64)
- C compiler version: gcc 4:12.2.0-3 (arm64)
- Pyfhel Version: master
I want to suggest a more maintainable solution of dependencies (like SEAL). Other projects are using makefiles with the feature to fetch special versions. Then you don't need "git clone" in your repository. Here is such an example for SEAL: https://github.com/OpenMined/TenSEAL/blob/main/cmake/seal.cmake
Is that a possible solution for you as a replacement of the old SEAL version from 2 years ago?
@skriesch I'll take a look!
SEAL version bumped to the latest! For future references, any SEAL version can be pulled and tested by using git submodule commands. The SEAL library flags can be customised in the pyproject.toml file.