You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Dear @choishingwan.
The deprecatedsys/sysctl.h is used in a few places across the PRSice codes, preventing compilation of the project.
Error Log
Compilation error running make:
...
43.57 -- Found ZLIB: /usr/lib/aarch64-linux-gnu/libz.so (found version "1.2.11")
43.57 -- Looking for C++ include pthread.h
43.64 -- Looking for C++ include pthread.h - found
43.64 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
43.73 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
43.73 -- Found Threads: TRUE
43.73 -- Configuring done
43.74 -- Generating done
43.75 -- Build files have been written to: /tmp/PRSice-2.3.5/build
43.78 [ 4%] Building CXX object src/CMakeFiles/bgen.dir/bgen_lib.cpp.o
43.96 In file included from /tmp/PRSice-2.3.5/inc/memoryread.hpp:4,
43.96 from /tmp/PRSice-2.3.5/lib/bgen_lib.hpp:10,
43.96 from /tmp/PRSice-2.3.5/src/bgen_lib.cpp:7:
43.96 /tmp/PRSice-2.3.5/inc/misc.hpp:51:10: fatal error: sys/sysctl.h: No such file or directory
43.96 51 | #include <sys/sysctl.h>
43.96 | ^~~~~~~~~~~~~~
43.96 compilation terminated.
43.96 make[2]: *** [src/CMakeFiles/bgen.dir/build.make:76: src/CMakeFiles/bgen.dir/bgen_lib.cpp.o] Error 1
43.96 make[1]: *** [CMakeFiles/Makefile2:112: src/CMakeFiles/bgen.dir/all] Error 2
43.96 make: *** [Makefile:91: all] Error 2
To Reproduce
Try build the following Dockerfile (some work in progress virtual machine, based on Ubuntu jammy (22.04LTS):
Hi again, just to add a bit more context. I'm trying to provide a cross-platform solution for PRSice2 etc. including M1 Macs via Docker (arm64-based architecture). I could get the compilation to work now on this rocker/r-ver:4.3.1 base image (based on Ubuntu 22.04 LTS) on a x86_64 host machine by removing #include <sys/sysctl.h> and replacing #include <Eigen/Dense> by #include <eigen3/Eigen/Dense> across inc/*.h files, but still encountered an issue that I couldn't resolve with the arm64 based platform in a Plink derived file:
77.35 [ 36%] Building CXX object src/CMakeFiles/plink.dir/plink_common.cpp.o
77.43 In file included from /tmp/PRSice-2.3.5/src/plink_common.cpp:18:
77.43 /tmp/PRSice-2.3.5/lib/plink_common.hpp:160:2: error: #error "64-bit builds currently require SSE2. Try producing a 32-bit build instead."
77.43 160 | #error \
77.43 | ^~~~~
77.43 /tmp/PRSice-2.3.5/lib/plink_common.hpp:163:10: fatal error: emmintrin.h: No such file or directory
77.43 163 | #include <emmintrin.h>
77.43 | ^~~~~~~~~~~~~
77.43 compilation terminated.
77.43 make[2]: *** [src/CMakeFiles/plink.dir/build.make:76: src/CMakeFiles/plink.dir/plink_common.cpp.o] Error 1
77.43 make[1]: *** [CMakeFiles/Makefile2:191: src/CMakeFiles/plink.dir/all] Error 2
77.43 make: *** [Makefile:91: all] Error 2
Do you think it is feasible to provide better "official" support on M1/arm64-based architectures, as well as more recent OS such as Ubuntu 22.04 (LTS)?
fyi, recent plink 1.9 builds use the SIMDe library (https://github.com/simd-everywhere/simde ) to support ARM builds; see lines 190-195 of the current plink_common.h .
Describe the bug
Dear @choishingwan.
The deprecated
sys/sysctl.h
is used in a few places across the PRSice codes, preventing compilation of the project.Error Log
Compilation error running
make
:To Reproduce
Try build the following
Dockerfile
(some work in progress virtual machine, based on Ubuntu jammy (22.04LTS):issuing:
docker build -t prsice2 -f Dockerfile .
The text was updated successfully, but these errors were encountered: