A recent reorganization of the libc++ module map that shipped in NDK 27 broke building the Swift compiler and other C++ Interop #76325
Labels
bug
A deviation from expected or documented behavior. Also: expected but undesirable behavior.
triage needed
This issue needs more specific labels
Description
I just tried building the Swift 6.1 trunk Sep.4 source snapshot natively on Android 13 AArch64 with the new Android NDK 27 sysroot and it failed with this linker error:
Modifying the libc++ module map like this got it to build again:
This worked fine when building the Aug. 6 trunk source snapshot with the NDK 26b sysroot last month, so I looked into it and that NDK did not ship with @ian-twilightcoder's reorganization of the libc++ module map from last summer, llvm/llvm-project@571178a21. NDK 27 ships with a lightly-patched version of that upstream libc++ module map, but I don't see anything when comparing their changes to the version in swiftlang/llvm-project that would cause this error.
I also see 11 newly failing C++ Interop tests from the Swift compiler validation suite, which all worked fine last month with NDK 26b:
Since the upstream libc++ reorg shipped with the LLVM 17 release last fall and there don't appear to be any fixes merged for this issue since, I assume this doesn't affect clang/C++, only Swift->C++ Interop, so I filed the issue here.
Reproduction
See commands pasted above
Expected behavior
No linker errors
Environment
Android 13 AArch64 in the Termux app
Additional information
I'll see what other module map changes get those 11 failing C++ Interop tests to build again. In the meantime, aren't there other environments using Swift with libc++ also that fail in this way?
@egorzhdan or @ldionne, in addition to Ian, let me know what you think.
The text was updated successfully, but these errors were encountered: