It looks like the problem is related to which version of CMake you use.
Ubuntu 16.10 supplies CMake 3.5.2.
Steam-Runtime ships a version that is way too old, so I built and used
the latest stable CMake version, 3.6.3.
Using 3.6.3 seems to always trigger this problem with the Swift build.
I tested it both ways:
1. I changed Ubuntu 16.10 to use CMake 3.6.3 and the build broke in
exactly the same way I described.
2. In Steam-Runtime, I built/used CMake 3.5.2 instead, and the build completed.
I still don’t know specifically what the build script bug is. This is
going to need to be fixed eventually if all newer versions of CMake
lead to a broken build process.
Thanks,
Eric
···
On 11/9/16, Eric Wing <ewmailing@gmail.com> wrote:
On 11/9/16, Eric Wing <ewmailing@gmail.com> wrote:
On 11/9/16, Jordan Rose <jordan_rose@apple.com> wrote:
Ah, that does help. The logic to build the Glibc module map comes from
stdlib/public/Platform/CMakeLists.txt, and explicitly checks for
“LINUX”,
“FREEBSD”, “ANDROID”, and “CYGWIN”. Does the Steam-Runtime build use a
different SDK name?Jordan
How would I verify/debug this for sure? I haven't been setting
anything differently when I build under Steam-Runtime vs. Ubuntu. (And
I have gotten through a pure Linux (no Android) build under
Steam-Runtime successfully.) Steam-Runtime is just a Linux. (It is
originally derived from Ubuntu 12.04LTS, though it probably has all
its Ubuntu identifiers stripped/replaced.)I checked the CMakeCache.txt in
build/Ninja-ReleaseAssert/swift-linux-x86_64Both files are identical between the Steam-Runtime and Ubuntu versions
when building for Android. The variable SWIFT_SDKS is:
SWIFT_SDKS:STRING=ANDROID;LINUXObviously something is different somewhere since it seems to be
skipping the glibc.modulemap in the Steam-Runtime case.Thanks,
EricOops. Correction to my last post. The CMakeCache.txt are not
identical. I compared the wrong files.However, the SWIFT_SDKS variable are the same in each.
Here are some differences I did spot:
In Ubuntu, LIBXML2_XMLLINT_EXECUABLE is not found, but defined in my
SteamRT cache.Ubuntu:
SWIFT_HAVE_WORKING_STD_REGEX_TEST:INTERNAL=1
Steam
SWIFT_HAVE_WORKING_STD_REGEX_TEST:INTERNAL=Ubuntu:
SWIFT_HAVE_WORKING_STD_REGEX_TEST_EXITCODE:INTERNAL=0
Steam:
SWIFT_HAVE_WORKING_STD_REGEX_TEST_EXITCODE:INTERNAL=FAILED_TO_RUNThe remaining of the differences are tool version differences and
stuff with libICU (because Steam-Runtime doesn't supply it so I must
build/supply it myself). But most of these differences are expected.Thanks,
Eric