[swift-dev] Glibc.swift: error: no such module 'SwiftGlibc'

William Dillon william at housedillon.com
Thu Nov 10 16:20:20 CST 2016


Thanks so much for getting to the bottom of this!

I was getting by with hacks to get around this for a while.  I'm very glad we have a reproducible change that triggers.

- Will

On November 10, 2016 at 1:34:27 PM, Eric Wing via swift-dev (swift-dev at swift.org) wrote:

On 11/9/16, Eric Wing <ewmailing at gmail.com> wrote:
> On 11/9/16, Eric Wing <ewmailing at gmail.com> wrote:
>> On 11/9/16, Jordan Rose <jordan_rose at 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_64
>>
>> Both files are identical between the Steam-Runtime and Ubuntu versions
>> when building for Android. The variable SWIFT_SDKS is:
>> SWIFT_SDKS:STRING=ANDROID;LINUX
>>
>>
>> Obviously something is different somewhere since it seems to be
>> skipping the glibc.modulemap in the Steam-Runtime case.
>>
>>
>> Thanks,
>> Eric
>>
>
> Oops. 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_RUN
>
>
> The 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
>


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
_______________________________________________
swift-dev mailing list
swift-dev at swift.org
https://lists.swift.org/mailman/listinfo/swift-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20161110/d766f12c/attachment.html>


More information about the swift-dev mailing list