Describe the bug
I'm somehow unable to get the QHY driver to build from source on my Raspberry Pi 4 (Bullseye 64bit) with newer SDKs. It fails during the linker step and I'm out of guesses, any help is appreciated.
[ 16%] Building CXX object CMakeFiles/indi_qhy_ccd.dir/qhy_ccd.cpp.o
[ 33%] Linking CXX executable indi_qhy_ccd
/usr/bin/ld: indi_qhy_ccd: hidden symbol `__aarch64_ldadd4_acq_rel' in /usr/lib/gcc/aarch64-linux-gnu/10/libgcc.a(ldadd_4_4.o) is referenced by DSO
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: [CMakeFiles/indi_qhy_ccd.dir/build.make:103: indi_qhy_ccd] Error 1
make[1]: [CMakeFiles/Makefile2:87: CMakeFiles/indi_qhy_ccd.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
To Reproduce
Exact steps to reproduce the behavior.
Install qhyccd SDK from indiqhy (I.e. cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug . && make && sudo make install)
The problem seems related to the QHYSDK version. I iterated through a couple of them and the build seems to pass with any SDK version sdk_Arm64_23.05.09 or earlier and fails with any later version including the newest I tried which was sdk_Arm64_24.01.09. I'm somehow wondering if this has to do with how the SDK got built and whether something around that end may have changed after the 23/05/09 version. So is this maybe a question for the QHYCCD folks or am I missing just the right trick?
Expected behavior
Well, the compile step should create an indi_qhy_ccd binary to install.
Desktop (please complete the following information):
Raspberry Pi 4B with 4GB RAM
OS: Raspberry Bullseye 64 Bit
Latest Indi-3rdparty
Log Files
My console output looks like this:
~/build/indi-3rdparty/indi-qhy $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug .
-- The CXX compiler identification is GNU 10.2.1
-- The C compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found CFITSIO 3.49: /usr/lib/aarch64-linux-gnu/libcfitsio.so
-- Found INDI: /usr/local/lib/aarch64-linux-gnu/libindidriver.so;/usr/local/lib/aarch64-linux-gnu/libindiAlignmentDriver.so (found version "2.0.6")
-- Found QHY: /usr/local/lib/libqhyccd.so
-- Found ZLIB: /usr/lib/aarch64-linux-gnu/libz.so (found version "1.2.11")
-- Found NOVA: /usr/lib/aarch64-linux-gnu/libnova.so
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Found USB1: /usr/lib/aarch64-linux-gnu/libusb-1.0.so (found version "1.0.24")
-- Performing Test USB1_HAS_LIBUSB_ERROR_NAME
-- Performing Test USB1_HAS_LIBUSB_ERROR_NAME - Success
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Performing Test COMPATIBLE_FORTIFY_SOURCE
-- Performing Test COMPATIBLE_FORTIFY_SOURCE - Success
-- Configuring done (2.6s)
-- Generating done (0.0s)
-- Build files have been written to: /home/pi/build_profile/indi-3rdparty/indi-qhy
~/build/indi-3rdparty/indi-qhy $ make
[ 16%] Building CXX object CMakeFiles/indi_qhy_ccd.dir/qhy_ccd.cpp.o
[ 33%] Linking CXX executable indi_qhy_ccd
/usr/bin/ld: indi_qhy_ccd: hidden symbol `__aarch64_ldadd4_acq_rel' in /usr/lib/gcc/aarch64-linux-> gnu/10/libgcc.a(ldadd_4_4.o) is referenced by DSO
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: [CMakeFiles/indi_qhy_ccd.dir/build.make:103: indi_qhy_ccd] Error 1
make[1]: [CMakeFiles/Makefile2:87: CMakeFiles/indi_qhy_ccd.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Describe the bug I'm somehow unable to get the QHY driver to build from source on my Raspberry Pi 4 (Bullseye 64bit) with newer SDKs. It fails during the linker step and I'm out of guesses, any help is appreciated.
To Reproduce Exact steps to reproduce the behavior.
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug . && make && sudo make install
)cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug . && make
)The problem seems related to the QHYSDK version. I iterated through a couple of them and the build seems to pass with any SDK version sdk_Arm64_23.05.09 or earlier and fails with any later version including the newest I tried which was sdk_Arm64_24.01.09. I'm somehow wondering if this has to do with how the SDK got built and whether something around that end may have changed after the 23/05/09 version. So is this maybe a question for the QHYCCD folks or am I missing just the right trick?
Expected behavior Well, the compile step should create an indi_qhy_ccd binary to install.
Desktop (please complete the following information):
Log Files My console output looks like this: