Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-76386

Can't use LLD linker with Android NDK

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P2: Important
    • None
    • 5.12.3
    • Build System
    • None
    • Fedora 30
    • Android

    Description

      Android NDK r18 added LLD linker with a notice that NDK will switch to it by default some time in the future (and probably remove other linkers too, I guess). Configuring Qt with '-linker lld' and NDK r20 gives following error (with fix for QTBUG-76293 applied):

      Running configuration tests...
      Checking for lld linker... 
      + cd /home/alexey/projects/tremotesf-android/3rdparty/qt/build-armeabi-v7a/config.tests && /home/alexey/Android/android-ndk-r20//toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain /home/alexey/Android/android-ndk-r20//toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=/home/alexey/Android/android-ndk-r20//sysroot -isystem /home/alexey/Android/android-ndk-r20//sysroot/usr/include/arm-linux-androideabi -isystem /home/alexey/Android/android-ndk-r20//sources/cxx-stl/llvm-libc++/include -isystem /home/alexey/Android/android-ndk-r20//sources/android/support/include -isystem /home/alexey/Android/android-ndk-r20//sources/cxx-stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -fuse-ld=lld -o conftest-out conftest.cpp
      > ld.lld: error: cannot open crtbegin_dynamic.o: No such file or directory
      > ld.lld: error: unable to find library -lc++
      > ld.lld: error: cannot open crtend_android.o: No such file or directory
      > clang++: error: linker command failed with exit code 1 (use -v to see invocation)
      test config.qtbase.tests.use_lld_linker FAILED
      

      With NDK r19c:

      Running configuration tests...
      Checking for lld linker... 
      + cd /home/alexey/projects/tremotesf-android/3rdparty/qt/build-armeabi-v7a/config.tests && /home/alexey/Android/android-ndk-r19c//toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain /home/alexey/Android/android-ndk-r19c//toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=/home/alexey/Android/android-ndk-r19c//sysroot -isystem /home/alexey/Android/android-ndk-r19c//sysroot/usr/include/arm-linux-androideabi -isystem /home/alexey/Android/android-ndk-r19c//sources/cxx-stl/llvm-libc++/include -isystem /home/alexey/Android/android-ndk-r19c//sources/android/support/include -isystem /home/alexey/Android/android-ndk-r19c//sources/cxx-stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -fuse-ld=lld -o conftest-out conftest.cpp
      > ld.lld: error: cannot open crtbegin_dynamic.o: No such file or directory
      > ld.lld: error: cannot open crtend_android.o: No such file or directory
      > clang++: error: linker command failed with exit code 1 (use -v to see invocation)
      test config.qtbase.tests.use_lld_linker FAILED
      

      r18b:

      Running configuration tests...
      Checking for lld linker... 
      + cd /home/alexey/projects/tremotesf-android/3rdparty/qt/build-armeabi-v7a/config.tests && /home/alexey/Android/android-ndk-r18b//toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain /home/alexey/Android/android-ndk-r18b//toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=/home/alexey/Android/android-ndk-r18b//sysroot -isystem /home/alexey/Android/android-ndk-r18b//sysroot/usr/include/arm-linux-androideabi -isystem /home/alexey/Android/android-ndk-r18b//sources/cxx-stl/llvm-libc++/include -isystem /home/alexey/Android/android-ndk-r18b//sources/android/support/include -isystem /home/alexey/Android/android-ndk-r18b//sources/cxx-stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -fuse-ld=lld -o conftest-out conftest.cpp
      > /home/alexey/Android/android-ndk-r18b//toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld: error: cannot open crtbegin_dynamic.o: No such file or directory
      > /home/alexey/Android/android-ndk-r18b//toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld: error: unable to find library -lstdc++
      > /home/alexey/Android/android-ndk-r18b//toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld: error: unable to find library -lm
      > /home/alexey/Android/android-ndk-r18b//toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld: error: unable to find library -ldl
      > /home/alexey/Android/android-ndk-r18b//toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld: error: unable to find library -lc
      > /home/alexey/Android/android-ndk-r18b//toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld: error: unable to find library -ldl
      > /home/alexey/Android/android-ndk-r18b//toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld: error: cannot open crtend_android.o: No such file or directory
      > clang++: error: linker command failed with exit code 1 (use -v to see invocation)
      test config.qtbase.tests.use_lld_linker FAILED
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              taipan BogDan Vatra
              equeim Alexey
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes