ci: Android NDK has too old libc++ #29360

issue maflcko openend this issue on February 1, 2024
  1. maflcko commented at 10:12 am on February 1, 2024: member

    The android CI task fails because the embedded libc++ in the NDK is too old.

    Can it be bumped?

  2. maflcko added the label Brainstorming on Feb 1, 2024
  3. maflcko added the label Build system on Feb 1, 2024
  4. maflcko added the label Tests on Feb 1, 2024
  5. maflcko added the label Android on Feb 1, 2024
  6. maflcko added the label CI failed on Feb 1, 2024
  7. maflcko commented at 10:13 am on February 1, 2024: member

    Reference:

     0./util/fs.h:65:30: error: no matching constructor for initialization of 'const std::u8string &' (aka 'const basic_string<char8_t> &')
     1        const std::u8string& utf8_str{std::filesystem::path::u8string()};
     2                             ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     3/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:794:40: note: candidate constructor not viable: no known conversion from 'std::string' (aka 'basic_string<char>') to 'const std::basic_string<char8_t>::allocator_type' (aka 'const std::allocator<char8_t>') for 1st argument
     4    _LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
     5                                       ^
     6/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:801:5: note: candidate constructor not viable: no known conversion from 'basic_string<char, char_traits<char>, allocator<char>>' to 'const basic_string<char8_t, char_traits<char8_t>, allocator<char8_t>>' for 1st argument
     7    basic_string(const basic_string& __str);
     8    ^
     9/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:806:5: note: candidate constructor not viable: no known conversion from 'basic_string<char, char_traits<char>, allocator<char>>' to 'basic_string<char8_t, char_traits<char8_t>, allocator<char8_t>>' for 1st argument
    10    basic_string(basic_string&& __str)
    11    ^
    12/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:819:5: note: candidate constructor template not viable: no known conversion from 'std::string' (aka 'basic_string<char>') to 'const char8_t *' for 1st argument
    13    basic_string(const _CharT* __s) : __r_(__default_init_tag(), __default_init_tag()) {
    14    ^
    15/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:870:5: note: candidate constructor not viable: no known conversion from 'std::string' (aka 'basic_string<char>') to 'initializer_list<char8_t>' for 1st argument
    16    basic_string(initializer_list<_CharT> __il);
    17    ^
    18/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:856:18: note: candidate template ignored: substitution failure [with _Tp = std::basic_string<char>]: no member named '_EnableIfImpl' in 'std::_MetaBase<false>'
    19        explicit basic_string(const _Tp& __t);
    20                 ^
    21/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:791:31: note: candidate constructor not viable: requires 0 arguments, but 1 was provided
    22    _LIBCPP_INLINE_VISIBILITY basic_string()
    23                              ^
    24/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:802:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    25    basic_string(const basic_string& __str, const allocator_type& __a);
    26    ^
    27/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:814:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    28    basic_string(basic_string&& __str, const allocator_type& __a);
    29    ^
    30/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:829:9: note: candidate constructor template not viable: requires 2 arguments, but 1 was provided
    31        basic_string(const _CharT* __s, const _Allocator& __a);
    32        ^
    33/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:832:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    34    basic_string(const _CharT* __s, size_type __n);
    35    ^
    36/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:836:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    37    basic_string(size_type __n, _CharT __c);
    38    ^
    39/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:860:18: note: candidate constructor template not viable: requires 2 arguments, but 1 was provided
    40        explicit basic_string(const _Tp& __t, const allocator_type& __a);
    41                 ^
    42/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:864:9: note: candidate constructor template not viable: requires 2 arguments, but 1 was provided
    43        basic_string(_InputIterator __first, _InputIterator __last);
    44        ^
    45/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:872:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    46    basic_string(initializer_list<_CharT> __il, const _Allocator& __a);
    47    ^
    48/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:834:5: note: candidate constructor not viable: requires 3 arguments, but 1 was provided
    49    basic_string(const _CharT* __s, size_type __n, const _Allocator& __a);
    50    ^
    51/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:840:9: note: candidate constructor template not viable: requires 3 arguments, but 1 was provided
    52        basic_string(size_type __n, _CharT __c, const _Allocator& __a);
    53        ^
    54/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:845:5: note: candidate constructor not viable: requires at least 2 arguments, but 1 was provided
    55    basic_string(const basic_string& __str, size_type __pos,
    56    ^
    57/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:867:9: note: candidate constructor template not viable: requires 3 arguments, but 1 was provided
    58        basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a);
    59        ^
    60/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:842:5: note: candidate constructor not viable: requires at least 3 arguments, but 1 was provided
    61    basic_string(const basic_string& __str, size_type __pos, size_type __n,
    62    ^
    63/ci_container_base/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/string:850:9: note: candidate constructor template not viable: requires at least 3 arguments, but 1 was provided
    64        basic_string(const _Tp& __t, size_type __pos, size_type __n,
    65        ^
    
  8. hebasto commented at 11:46 am on February 3, 2024: member

    The android CI task fails because the embedded libc++ in the NDK is too old.

    Can it be bumped?

    Qt 6 docs claim that it supports Clang 14.0.6 (NDK r25b).

    It is possible to build depends with Clang 14.0.7 (NDK r25c) with API level >= 33.

    However, the compiler errors remain the same, unfortunately.

  9. maflcko commented at 11:57 am on February 3, 2024: member

    Clang 14.0.6 (NDK r25b).

    Sure, but the issue is the libc++, not clang. A older libc++ is included in r25, see https://github.com/android/ndk/issues/1530#issuecomment-1659055600

  10. hebasto commented at 12:00 pm on February 3, 2024: member

    Clang 14.0.6 (NDK r25b).

    Sure, but the issue is the libc++, not clang. A older libc++ is included in r25, see android/ndk#1530 (comment)

    Right. I mean, ~even the latest Qt~ the Qt 5.15 codebase cannot be compiled with NDK > 25.


    UPD. https://bugreports.qt.io/browse/QTQAINFRA-5771

  11. maflcko commented at 6:46 am on May 14, 2024: member
    Let’s continue discussion in https://github.com/bitcoin/bitcoin/pull/30049
  12. maflcko closed this on May 14, 2024

  13. maflcko commented at 6:52 am on May 14, 2024: member

    UPD. https://bugreports.qt.io/browse/QTQAINFRA-5771

    For reference, I guess this was fixed in qt 6.7 then?


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-09-28 22:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me