The Swift stdlib and testsuite has been seeing this issue since NDK 29, which I was finally able to reproduce with a C++ header alone:
# RUN: at line 21
/home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target x86_64-unknown-linux-android -fmodules-cache-path='/home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/swift-test-results/x86_64-unknown-linux-android/clang-module-cache' -isystem /home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIE -fobjc-runtime=ios-5.0 -std=c++11 --std=gnu++14 -I/home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/./lib/swift -fsyntax-only -x c++-header /home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/test-android-x86_64/Interop/CxxToSwiftToCxx/Output/bridge-cxx-struct-back-to-cxx.swift.tmp/full-cxx-swift-cxx-bridging.h -std=gnu++17 -c -fmodules -fcxx-modules -I /home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/test-android-x86_64/Interop/CxxToSwiftToCxx/Output/bridge-cxx-struct-back-to-cxx.swift.tmp
# executed command: /home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target x86_64-unknown-linux-android -fmodules-cache-path=/home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/swift-test-results/x86_64-unknown-linux-android/clang-module-cache -isystem /home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIE -fobjc-runtime=ios-5.0 -std=c++11 --std=gnu++14 -I/home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/./lib/swift -fsyntax-only -x c++-header /home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/test-android-x86_64/Interop/CxxToSwiftToCxx/Output/bridge-cxx-struct-back-to-cxx.swift.tmp/full-cxx-swift-cxx-bridging.h -std=gnu++17 -c -fmodules -fcxx-modules -I /home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/test-android-x86_64/Interop/CxxToSwiftToCxx/Output/bridge-cxx-struct-back-to-cxx.swift.tmp
# .---command stderr------------
# | clang++: warning: argument unused during compilation: '-c' [-Wunused-command-line-argument]
# | While building module 'std' imported from /home/finagolfin/build/swift-project/Ninja-Release/swift-linux-x86_64/test-android-x86_64/Interop/CxxToSwiftToCxx/Output/bridge-cxx-struct-back-to-cxx.swift.tmp/full-cxx-swift-cxx-bridging.h:31:
# | In file included from <module-includes>:1:
# | In file included from /home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1856:
# | In file included from /home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
# | In file included from /home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:118:
# | /home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:142:39: error: redefinition of '__libcpp_wcschr'
# | 142 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {
# | | ^
# | /home/finagolfin/android-ndk-r30-beta1/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:142:39: note: previous definition is here
Reducing that to the minimum reproducer, I get the following single-line header and command:
> cat foo.h
#include <cstddef>
# works fine with NDK 28
> /home/finagolfin/android-ndk-r28c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target aarch64-unknown-linux-android35 -isystem /home/finagolfin/android-ndk-r28c/toolchains/llvm/prebuilt/linux-x86_64/sysroot -x c++-header foo.h -fmodules
# breaks from NDK 29 onwards
> /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target aarch64-unknown-linux-android35 -isystem /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/sysroot -x c++-header foo.h -fmodules
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:141:39: error: redefinition of '__libcpp_wcschr'
141 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:141:39: note: previous definition is here
141 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:144:72: error: redefinition of 'wcschr'
144 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:144:72: note: previous definition is here
144 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:147:66: error: redefinition of 'wcschr'
147 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wcschr(wchar_t* __s, wchar_t __c) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:147:66: note: previous definition is here
147 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wcschr(wchar_t* __s, wchar_t __c) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:151:39: error: redefinition of '__libcpp_wcspbrk'
151 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:151:39: note: previous definition is here
151 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:155:1: error: redefinition of 'wcspbrk'
155 | wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:155:1: note: previous definition is here
155 | wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:158:66: error: redefinition of 'wcspbrk'
158 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wcspbrk(wchar_t* __s1, const wchar_t* __s2) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:158:66: note: previous definition is here
158 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wcspbrk(wchar_t* __s1, const wchar_t* __s2) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:162:39: error: redefinition of '__libcpp_wcsrchr'
162 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcsrchr(const wchar_t* __s, wchar_t __c) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:162:39: note: previous definition is here
162 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcsrchr(const wchar_t* __s, wchar_t __c) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:165:72: error: redefinition of 'wcsrchr'
165 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD const wchar_t* wcsrchr(const wchar_t* __s, wchar_t __c) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:165:72: note: previous definition is here
165 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD const wchar_t* wcsrchr(const wchar_t* __s, wchar_t __c) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:168:66: error: redefinition of 'wcsrchr'
168 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wcsrchr(wchar_t* __s, wchar_t __c) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:168:66: note: previous definition is here
168 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wcsrchr(wchar_t* __s, wchar_t __c) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:172:39: error: redefinition of '__libcpp_wcsstr'
172 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:172:39: note: previous definition is here
172 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:176:1: error: redefinition of 'wcsstr'
176 | wcsstr(const wchar_t* __s1, const wchar_t* __s2) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:176:1: note: previous definition is here
176 | wcsstr(const wchar_t* __s1, const wchar_t* __s2) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:179:66: error: redefinition of 'wcsstr'
179 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wcsstr(wchar_t* __s1, const wchar_t* __s2) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:179:66: note: previous definition is here
179 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wcsstr(wchar_t* __s1, const wchar_t* __s2) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:183:39: error: redefinition of '__libcpp_wmemchr'
183 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:183:39: note: previous definition is here
183 | inline _LIBCPP_HIDE_FROM_ABI wchar_t* __libcpp_wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:187:1: error: redefinition of 'wmemchr'
187 | wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:187:1: note: previous definition is here
187 | wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {
| ^
While building module 'std' imported from foo.h:1:
In file included from <module-includes>:1:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/algorithm:1849:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__algorithm/find.h:32:
In file included from /home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/cwchar:117:
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:190:66: error: redefinition of 'wmemchr'
190 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wmemchr(wchar_t* __s, wchar_t __c, size_t __n) {
| ^
/home/finagolfin/android-ndk-r29/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/wchar.h:190:66: note: previous definition is here
190 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD wchar_t* wmemchr(wchar_t* __s, wchar_t __c, size_t __n) {
| ^
foo.h:1:10: fatal error: could not build module 'std'
1 | #include <cstddef>
| ~~~~~~~~^
16 errors generated.
Description
The Swift stdlib and testsuite has been seeing this issue since NDK 29, which I was finally able to reproduce with a C++ header alone:
Reducing that to the minimum reproducer, I get the following single-line header and command:
Removing the
-fmodulesflag gets it to not error again, reproducible with NDK 30 beta 1 also.I am using a supported NDK
Affected versions
r29, r30