# Cross-Compiling macOS to Linux

**URL:** <https://forums.swift.org/t/cross-compiling-macos-to-linux/34003>\
**Category:** Using Swift\
**Created:** [February 22, 2020, 3:12am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003 "2020-02-22T03:12:29Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![SlaunchaMan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/slaunchaman/32/520_2.png) [@SlaunchaMan](https://forums.swift.org/u/SlaunchaMan)\
**Post date:** [February 22, 2020, 3:12am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/1 "2020-02-22T03:12:29Z")

</div>

In my recent development of my first Vapor service, I settled on a workflow for deployment that involves using the Swift Docker image to build my app, then copying the built product to an Ubuntu Docker image to run. This is nice because it prevents my server from needing a compiler on it, but I can’t help but notice the inefficiency of using Docker to compile when I have a desktop Mac sitting here ready to do it.

Cross-compiling is nothing new, but is there a way to configure macOS’ Swift compiler to do this, assuming I would be able to download all of the Linux headers that I would need?

---

<div class="post-metadata">

**Author:** ![SDGGiesbrecht](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/sdggiesbrecht/32/4768_2.png) [@SDGGiesbrecht](https://forums.swift.org/u/SDGGiesbrecht)\
**Post date:** [February 22, 2020, 4:40am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/2 "2020-02-22T04:40:04Z")

</div>

It is supposed to be possible for the main development branch, and some people use it that way. But it hasn’t been officially supported in any release and remains undocumented. Nor is it tested very well (if at all), so it tends to end up broken from time to time.

That said, you could look at the [original pull request to SwiftPM](https://github.com/apple/swift-package-manager/pull/1098), which is rather old, but includes examples specifically for the macOS‐to‐Ubuntu scenario. You could also compare my more recent script for [cross‐compiling for Android](https://forums.swift.org/t/ci-for-packages-on-windows-android/32295/72). It targets a different platform, but it serves as a more modern demonstration of what you’ll need and how you’ll need to use it.

But you should know that the it won’t be nearly as easy as using Docker, which also has the benefit of official support and thorough testing. For most developers wanting to compile for Ubuntu from macOS, the Docker method is what I would recommend.

---

<div class="post-metadata">

**Author:** ![SlaunchaMan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/slaunchaman/32/520_2.png) [@SlaunchaMan](https://forums.swift.org/u/SlaunchaMan)\
**Post date:** [February 22, 2020, 4:46am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/3 "2020-02-22T04:46:21Z")

</div>

Thanks! This is a great start. I’m curious enough about how performance would compare to probably spend 10x the time I’ll ever save figuring it out. 😄

---

<div class="post-metadata">

**Author:** ![0xTim](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/0xtim/32/27968_2.png) [@0xTim](https://forums.swift.org/u/0xTim)\
**Post date:** [February 22, 2020, 6:06am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/4 "2020-02-22T06:06:26Z")

</div>

@SlaunchaMan take a look at [GitHub - CSCIX65G/SwiftCrossCompilers: SPM toolchain to cross compile Raspberry Pi (arm64) and Amd64 Swift binaries on macOS](https://github.com/CSCIX65G/SwiftCrossCompilers) which should allow you to build for other platforms. This is taken from the Swift Crypto [`vendor-boringssl.sh` script](https://github.com/apple/swift-crypto/blob/master/scripts/vendor-boringssl.sh#L99)

---

<div class="post-metadata">

**Author:** ![swiftli](https://avatars.discourse-cdn.com/v4/letter/s/ce73a5/32.png) [@swiftli](https://forums.swift.org/u/swiftli)\
**Post date:** [February 23, 2020, 10:57pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/5 "2020-02-23T22:57:59Z")

</div>

@0xTim  
I tried it. It did generate the binary for linux (ubuntu.) But when I run it on linux, I get the error: error while loading shared libraries: libswiftSwiftOnoneSupport.so: cannot open shared object file: No such file or directory.

The program is a simple print statement.

Have you had success with it?

---

<div class="post-metadata">

**Author:** ![spevans](https://avatars.discourse-cdn.com/v4/letter/s/59ef9b/32.png) [@spevans](https://forums.swift.org/u/spevans)\
**Post date:** [February 23, 2020, 11:33pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/6 "2020-02-23T23:33:10Z")

</div>

That could be an issue with the `RUNPATH` embedded in the executable not pointing to the directory where the swift libraries reside. See what the output of `readelf -aW <executable>|grep RUNPATH` shows.

The libraries are normally in the subdirectory `usr/lib/swift/linux/` where the tar file was untarred so you could try running the executable with `LD_LIBRARY_PATH=<swift install dir>/usr/lib/swift/linux <executable>`

---

<div class="post-metadata">

**Author:** ![swiftli](https://avatars.discourse-cdn.com/v4/letter/s/ce73a5/32.png) [@swiftli](https://forums.swift.org/u/swiftli)\
**Post date:** [February 24, 2020, 12:00am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/7 "2020-02-24T00:00:14Z")

</div>

@spevans  
On the linux box, the output of `readelf -aW bm | grep RUNPATH` is:  
`Library runpath: [/usr/lib/swift/linux:/usr/lib/swift:$ORIGIN]`.

When you say run with `LD_LIBRARY_PATH=<swift install dir>/usr/lib/swift/linux <executable>` -- there's no swift on the linux box. Will I need to install swift on the linux machine to run the binary?

---

<div class="post-metadata">

**Author:** ![spevans](https://avatars.discourse-cdn.com/v4/letter/s/59ef9b/32.png) [@spevans](https://forums.swift.org/u/spevans)\
**Post date:** [February 24, 2020, 12:03am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/8 "2020-02-24T00:03:14Z")

</div>

Yes you will need swift to be installed on the Ubunutu host as your executable needs to load the shared libraries. Try downloading the same version of swift you compiled against and untar it into the `/` directory

---

<div class="post-metadata">

**Author:** ![SDGGiesbrecht](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/sdggiesbrecht/32/4768_2.png) [@SDGGiesbrecht](https://forums.swift.org/u/SDGGiesbrecht)\
**Post date:** [February 24, 2020, 12:10am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/9 "2020-02-24T00:10:06Z")

</div>

No, you do not need Swift installed.

You only need to supply the necessary shared libraries alongside your executable. Those are the `.so` files in `[...].sdk/usr/lib/swift`. You can find the SDK itself by looking inside the JSON file you supplied to `--destination`. You can simply copy the libraries into the same directory as the executable, because the `$ORIGIN` entry in the `RUNPATH` will find them there.

Alternatively, some of the libraries support static linking instead by building with `--static-swift-stdlib`. If that covers all the libraries you need, then you won’t need to copy anything.

---

<div class="post-metadata">

**Author:** ![swiftli](https://avatars.discourse-cdn.com/v4/letter/s/ce73a5/32.png) [@swiftli](https://forums.swift.org/u/swiftli)\
**Post date:** [February 24, 2020, 12:23am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/10 "2020-02-24T00:23:09Z")

</div>

@spevans  
Yes, this worked. Thanks!

---

<div class="post-metadata">

**Author:** ![swiftli](https://avatars.discourse-cdn.com/v4/letter/s/ce73a5/32.png) [@swiftli](https://forums.swift.org/u/swiftli)\
**Post date:** [February 24, 2020, 12:29am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/11 "2020-02-24T00:29:55Z")

</div>

@SDGGiesbrecht  
the sdk path is `/Library/Developer/SDKs/amd64-5.1.1-RELEASE.sdk` Inside the sdk, I see `usr/lib/swift/libswiftSwiftOnoneSupport.dylib` but not libswiftSwiftOnoneSupport.so. I am not familiar with the internals, but a quick google search suggets .dylib could be renamed to .so for this purpose?

(by the way, Installing swift on linux worked, and then running the executable worked)

---

<div class="post-metadata">

**Author:** ![SDGGiesbrecht](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/sdggiesbrecht/32/4768_2.png) [@SDGGiesbrecht](https://forums.swift.org/u/SDGGiesbrecht)\
**Post date:** [February 24, 2020, 12:44am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/12 "2020-02-24T00:44:02Z")

</div>

> (by the way, Installing swift on linux worked, and then running the executable worked)

Yes, by installing Swift, you provided those libraries along with a whole lot of unnecessary things.

The risk in that is that you provided them in global paths. Since you cannot have two versions of Swift installed in the same place, and Swift is not API‐stable on Linux, your binary will be version‐locked with Swift and unable to coexist on the same machine as another binary installed the same way but locked to a different version of Swift.

> sdk path is `/Library/Developer/SDKs/amd64-5.1.1-RELEASE.sdk` Inside the sdk, I see `usr/lib/swift/libswiftSwiftOnoneSupport.dylib`

If the toolchain/SDK combination links an `.so` but provides a `.dylib`, then it wasn’t assembled correctly. Maybe whoever assembled it was lazy because he or she never expected anyone to build without `--static-swift-stdlib`.

Instead, you could pull the libraries out of the `.tar` of Swift that you would otherwise have installed (they would be at roughly the same relative path). Then you could bundle those with your executable instead of the broken ones from the cross‐compilation toolchain.

---

<div class="post-metadata">

**Author:** ![swiftli](https://avatars.discourse-cdn.com/v4/letter/s/ce73a5/32.png) [@swiftli](https://forums.swift.org/u/swiftli)\
**Post date:** [February 24, 2020, 12:57am UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/13 "2020-02-24T00:57:39Z")

</div>

@SDGGiesbrecht

I am sorry, I gave the incorrect path. After cd'ing into the sdk, I did an on ls on /usr/lib/swift, instead of usr/lib/swift.

Inside the sdk/usr/lib there are gcc, llvm-6.0, sasl2, ssl, and x86\_64-linux-gnu dirs, but no swift directory. However, I did find .so files in `usr/lib/x86_64-linux-gnu`

In any case, I am happy to tar the libraries and package the binary with it. It's a good enough solution. I am sure static binary is in the works at swift.

Thanks,

---

<div class="post-metadata">

**Author:** ![SlaunchaMan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/slaunchaman/32/520_2.png) [@SlaunchaMan](https://forums.swift.org/u/SlaunchaMan)\
**Post date:** [February 24, 2020, 2:54pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/14 "2020-02-24T14:54:42Z")

</div>

I have this working for a simple executable project. It seems that my dependency on SwiftNIO is the first place where this falls down for cross-compilation:

```
/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
import CNIOZlib

```

> **Full Build Log**
>
> ```
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> <module-includes>:1:10: note: in file included from <module-includes>:1:
> #include "/Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h"
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/CNIOZlib/include/CNIOZlib.h:17:10: error: 'zlib.h' file not found
> #include <zlib.h>
> ^
> /Users/jeff/Projects/EmojiClubServer/.build/checkouts/swift-nio/Sources/NIOHTTP1/HTTPResponseCompressor.swift:15:8: error: could not build C module 'CNIOZlib'
> import CNIOZlib
> ^
> 
> ```

This may be as simple as finding a Linux version of `zlib` and making sure that that C flag is set, but I’m not sure where to set it.

---

<div class="post-metadata">

**Author:** ![SlaunchaMan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/slaunchaman/32/520_2.png) [@SlaunchaMan](https://forums.swift.org/u/SlaunchaMan)\
**Post date:** [February 24, 2020, 3:32pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/15 "2020-02-24T15:32:27Z")

</div>

I was able to get `zlib` imports working by adding `zlib1g-dev` to the list of packages that the script looks for. Updating as I go in case this is useful to anyone. The next part of building Vapor that fails is this:

```
/Users/jeff/Projects/Open-Source/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8: error: missing required module 'CFURLSessionInterface'
import FoundationNetworking

```

This one I’m not as sure how to proceed with.

---

<div class="post-metadata">

**Author:** ![0xTim](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/0xtim/32/27968_2.png) [@0xTim](https://forums.swift.org/u/0xTim)\
**Post date:** [February 24, 2020, 4:50pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/16 "2020-02-24T16:50:04Z")

</div>

Yeah that's going to be a problem 😕

You'll need a Linux Foundation to build against, I have no idea how you'll get around that without building it yourself and pointing `swift build` to it

---

<div class="post-metadata">

**Author:** ![SlaunchaMan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/slaunchaman/32/520_2.png) [@SlaunchaMan](https://forums.swift.org/u/SlaunchaMan)\
**Post date:** [February 24, 2020, 5:31pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/17 "2020-02-24T17:31:43Z")

</div>

Oof, OK. I guess for now building through Docker isn't so bad… 😃

---

<div class="post-metadata">

**Author:** ![johannesweiss](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/johannesweiss/32/38183_2.png) [@johannesweiss](https://forums.swift.org/u/johannesweiss)\
**Post date:** [February 25, 2020, 12:01pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/18 "2020-02-25T12:01:59Z")

</div>

@SlaunchaMan this sounds like a bug in one of the tools. How did you create the cross-compilation toolchain?

It could be missing dependencies (eg. OpenSSL) in the cross compilation toolchain too, we can debug this here.

---

<div class="post-metadata">

**Author:** ![SlaunchaMan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/slaunchaman/32/520_2.png) [@SlaunchaMan](https://forums.swift.org/u/SlaunchaMan)\
**Post date:** [February 25, 2020, 1:09pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/19 "2020-02-25T13:09:47Z")

</div>

I used the script in the `swiftpm` repository, modified to include `zlib`. Then I compiled my project with `swift build --destination /path/to/destination.json`. I’ll share the modification to the script as a PR in case it’s useful to anyone.

---

<div class="post-metadata">

**Author:** ![SlaunchaMan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/slaunchaman/32/520_2.png) [@SlaunchaMan](https://forums.swift.org/u/SlaunchaMan)\
**Post date:** [February 25, 2020, 1:37pm UTC](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003/20 "2020-02-25T13:37:05Z")

</div>

Here”s the PR: [Add zlib to package names by SlaunchaMan · Pull Request #2614 · apple/swift-package-manager · GitHub](https://github.com/apple/swift-package-manager/pull/2614)

To build this, first I generate the toolchain like this (using my patched version):

```
./swiftpm/Utilities/build_ubuntu_cross_compilation_toolchain /tmp/ ~/Downloads/swift-5.1.4-RELEASE-osx.pkg ~/Downloads/swift-5.1.4-RELEASE-ubuntu18.04.tar.gz

```

Then I run this to build:

```
swift build --destination /tmp/cross-toolchain/ubuntu-xenial-destination.json

```

Here’s the output from that command in a fresh Vapor install (created using `vapor new`):

> **Build Log**
>
> ```
> VaporTest jeff$ swift build --destination /tmp/cross-toolchain/ubuntu-xenial-destination.json
> 
> Fetching https://github.com/vapor/core.git
> 
> Fetching https://github.com/vapor/database-kit.git
> 
> Fetching https://github.com/vapor/sql.git
> 
> Fetching https://github.com/vapor/validation.git
> 
> Fetching https://github.com/vapor/crypto.git
> 
> Fetching https://github.com/vapor/sqlite.git
> 
> Fetching https://github.com/vapor/routing.git
> 
> Fetching https://github.com/vapor/service.git
> 
> Fetching https://github.com/vapor/fluent.git
> 
> Fetching https://github.com/apple/swift-nio-zlib-support.git
> 
> Fetching https://github.com/vapor/websocket.git
> 
> Fetching https://github.com/apple/swift-nio-ssl.git
> 
> Fetching https://github.com/vapor/multipart.git
> 
> Fetching https://github.com/apple/swift-nio-ssl-support.git
> 
> Fetching https://github.com/vapor/console.git
> 
> Fetching https://github.com/apple/swift-nio.git
> 
> Fetching https://github.com/vapor/vapor.git
> 
> Fetching https://github.com/vapor/template-kit.git
> 
> Fetching https://github.com/vapor/fluent-sqlite.git
> 
> Fetching https://github.com/vapor/http.git
> 
> Fetching https://github.com/vapor/url-encoded-form.git
> 
> Completed resolution in 14.86s
> 
> Cloning https://github.com/vapor/crypto.git
> 
> Resolving https://github.com/vapor/crypto.git at 3.3.3
> 
> Cloning https://github.com/vapor/template-kit.git
> 
> Resolving https://github.com/vapor/template-kit.git at 1.4.0
> 
> Cloning https://github.com/vapor/sqlite.git
> 
> Resolving https://github.com/vapor/sqlite.git at 3.2.1
> 
> Cloning https://github.com/vapor/fluent.git
> 
> Resolving https://github.com/vapor/fluent.git at 3.2.0
> 
> Cloning https://github.com/vapor/console.git
> 
> Resolving https://github.com/vapor/console.git at 3.1.1
> 
> Cloning https://github.com/vapor/service.git
> 
> Resolving https://github.com/vapor/service.git at 1.0.2
> 
> Cloning https://github.com/vapor/validation.git
> 
> Resolving https://github.com/vapor/validation.git at 2.1.1
> 
> Cloning https://github.com/vapor/websocket.git
> 
> Resolving https://github.com/vapor/websocket.git at 1.1.2
> 
> Cloning https://github.com/apple/swift-nio-ssl-support.git
> 
> Resolving https://github.com/apple/swift-nio-ssl-support.git at 1.0.0
> 
> Cloning https://github.com/vapor/url-encoded-form.git
> 
> Resolving https://github.com/vapor/url-encoded-form.git at 1.0.6
> 
> Cloning https://github.com/vapor/database-kit.git
> 
> Resolving https://github.com/vapor/database-kit.git at 1.3.3
> 
> Cloning https://github.com/vapor/vapor.git
> 
> Resolving https://github.com/vapor/vapor.git at 3.3.1
> 
> Cloning https://github.com/apple/swift-nio-ssl.git
> 
> Resolving https://github.com/apple/swift-nio-ssl.git at 1.4.0
> 
> Cloning https://github.com/vapor/sql.git
> 
> Resolving https://github.com/vapor/sql.git at 2.3.2
> 
> Cloning https://github.com/vapor/core.git
> 
> Resolving https://github.com/vapor/core.git at 3.9.2
> 
> Cloning https://github.com/apple/swift-nio.git
> 
> Resolving https://github.com/apple/swift-nio.git at 1.14.1
> 
> Cloning https://github.com/vapor/routing.git
> 
> Resolving https://github.com/vapor/routing.git at 3.1.0
> 
> Cloning https://github.com/vapor/http.git
> 
> Resolving https://github.com/vapor/http.git at 3.2.1
> 
> Cloning https://github.com/vapor/multipart.git
> 
> Resolving https://github.com/vapor/multipart.git at 3.0.4
> 
> Cloning https://github.com/vapor/fluent-sqlite.git
> 
> Resolving https://github.com/vapor/fluent-sqlite.git at 3.0.0
> 
> Cloning https://github.com/apple/swift-nio-zlib-support.git
> 
> Resolving https://github.com/apple/swift-nio-zlib-support.git at 1.0.0
> 
> **/Users/jeff/VaporTest/.build/checkouts/core/Sources/Core/Process+Execute.swift:163:17:**  **warning:**  **'launchPath' is deprecated: renamed to 'executableURL'**
> 
> process.launchPath = path
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/core/Sources/Core/Process+Execute.swift:163:17:**  **note:**  **use 'executableURL' instead**
> 
> process.launchPath = path
> 
> **^ ~~~~~~~~~ **
> 
> executableURL
> 
> **/Users/jeff/VaporTest/.build/checkouts/core/Sources/Core/Process+Execute.swift:167:17:**  **warning:** **'launch()' is deprecated: renamed to 'run'**
> 
> process.launch()
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/core/Sources/Core/Process+Execute.swift:167:17:**  **note:**  **use 'run' instead**
> 
> process.launch()
> 
> **^ ~~~~~ **
> 
> run
> 
> **/Users/jeff/VaporTest/.build/checkouts/core/Sources/Core/Process+Execute.swift:163:17:**  **warning:**  **'launchPath' is deprecated: renamed to 'executableURL'**
> 
> process.launchPath = path
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/core/Sources/Core/Process+Execute.swift:163:17:**  **note:**  **use 'executableURL' instead**
> 
> process.launchPath = path
> 
> **^ ~~~~~~~~~ **
> 
> executableURL
> 
> **/Users/jeff/VaporTest/.build/checkouts/core/Sources/Core/Process+Execute.swift:167:17:**  **warning:** **'launch()' is deprecated: renamed to 'run'**
> 
> process.launch()
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/core/Sources/Core/Process+Execute.swift:167:17:**  **note:**  **use 'run' instead**
> 
> process.launch()
> 
> **^ ~~~~~ **
> 
> run
> 
> **/Users/jeff/VaporTest/.build/checkouts/websocket/Sources/WebSocket/WebSocketHandler.swift:37:13:**  **warning:**  **variable 'frame' was never mutated; consider changing to 'let' constant**
> 
> var frame = self.unwrapInboundIn(data)
> 
> **~~~ ^**
> 
> let
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> **/Users/jeff/VaporTest/.build/checkouts/vapor/Sources/Vapor/Client/FoundationClient.swift:2:8:**  **error:**  **missing required module 'CFURLSessionInterface'**
> 
> import FoundationNetworking
> 
> **^**
> 
> ```

[Next page](https://forums.swift.org/t/cross-compiling-macos-to-linux/34003.md?page=2)
