Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building of indi_qhy_ccd fails on aarch64 (hidden symbol `__aarch64_ldadd4_acq_rel') #897

Open
nrackwit opened this issue Feb 13, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@nrackwit
Copy link
Contributor

nrackwit commented Feb 13, 2024

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.

  1. Install qhyccd SDK from indiqhy (I.e. cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug . && make && sudo make install)
  2. Build indi_qhy_ccd (I.e. cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug . && make)
  3. See error

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

@nrackwit nrackwit added the bug Something isn't working label Feb 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant