I am using a sysroot for a proprietary custom linux build. Saying this, I don't think the sysroot is the issue. As I have said, swift build works, it just doesn't work when --build-tests is included. I can also cross-compile C/C++ programs for the target. I have built the stdlib using the scripts provided in this swift-armv7 repo. Below is my destination.json:
{
"version":1,
"sdk":"/usr/local/armv7-unknown-linux-gnueabihf/sysroot",
"toolchain-bin-dir":"/usr/local/armv7-unknown-linux-gnueabihf/tools/bin",
"target":"armv7-unknown-linux-gnueabihf",
"dynamic-library-extension":"so",
"extra-cc-flags":[
"-fPIC",
"-I/usr/local/armv7-unknown-linux-gnueabihf/staging/include",
"-B/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib/armv7-unknown-linux-gnueabihf/9.2.0"
],
"extra-swiftc-flags":[
"-target", "armv7-unknown-linux-gnueabihf",
"-use-ld=lld",
"-tools-directory", "/usr/local/armv7-unknown-linux-gnueabihf/tools/bin",
"-Xlinker", "-rpath", "-Xlinker", "/usr/lib/swift/linux",
"-Xlinker", "-rpath", "-Xlinker", "/usr/lib/swift/linux/armv7-unknown-linux-gnueabihf",
"-Xlinker", "-L/usr/local/armv7-unknown-linux-gnueabihf/staging/lib",
"-Xlinker", "-L/usr/local/armv7-unknown-linux-gnueabihf/sysroot",
"-Xlinker", "-L/usr/local/armv7-unknown-linux-gnueabihf/sysroot/lib",
"-Xlinker", "-L/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib",
"-Xlinker", "-L/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib/swift",
"-Xlinker", "-L/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib/swift/linux",
"-Xlinker", "-L/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib/swift/linux/armv7",
"-Xlinker", "-L/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib/armv7-unknown-linux-gnueabihf/9.2.0",
"-Xlinker", "--build-id=sha1",
"-I/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/include",
"-I/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib/swift",
"-resource-dir", "/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib/swift",
"-Xclang-linker", "-B/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib",
"-Xclang-linker", "-B/usr/local/armv7-unknown-linux-gnueabihf/sysroot/usr/lib/armv7-unknown-linux-gnueabihf/9.2.0",
"-Xclang-linker", "-L/usr/local/armv7-unknown-linux-gnueabihf/staging/lib",
"-sdk", "/usr/local/armv7-unknown-linux-gnueabihf/sysroot"
],
"extra-cpp-flags":[
"-I/usr/local/armv7-unknown-linux-gnueabihf/staging/include",
"-lstdc++"
]
}