Build Information
Failed to build swift-cli, reference 0.1.2 (b2526e), with Swift 6.3 for Android on 18 Apr 2026 02:27:13 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/CorvidLabs/swift-cli.git
Reference: 0.1.2
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/CorvidLabs/swift-cli
* tag 0.1.2 -> FETCH_HEAD
HEAD is now at b2526e6 Fix multiline Text rendering bug and add DocC documentation (#3)
Cloned https://github.com/CorvidLabs/swift-cli.git
Revision (git rev-parse @):
b2526e6ccad5916f548a7fad5f5ce9d4f73c7be4
SUCCESS checkout https://github.com/CorvidLabs/swift-cli.git at 0.1.2
========================================
Build
========================================
Selected platform: android
Swift version: 6.3
Building package at path: $PWD
https://github.com/CorvidLabs/swift-cli.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:9008270ea37a55e78725e6225015adb5eff8582da520c5232bf0499f32c36dc4
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest
Fetching https://github.com/swiftlang/swift-docc-plugin
Fetching https://github.com/apple/swift-atomics.git
[1/2277] Fetching swift-docc-plugin
[252/4097] Fetching swift-docc-plugin, swift-atomics
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.54s)
Fetched https://github.com/apple/swift-atomics.git from cache (1.55s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.0 (2.31s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.6 (2.29s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3672] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.36s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.92s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.6
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.3.0
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/28] Write sources
[13/28] Compiling _AtomicsShims.c
[14/28] Write swift-version--4F562202D5529B1.txt
[16/55] Emitting module Atomics
[17/57] Compiling Atomics AtomicStorage.swift
[18/57] Compiling Atomics AtomicValue.swift
[19/57] Compiling Atomics UnsafeAtomic.swift
[20/57] Compiling Atomics UnsafeAtomicLazyReference.swift
[21/57] Compiling Atomics ManagedAtomic.swift
[22/57] Compiling Atomics ManagedAtomicLazyReference.swift
[23/57] Compiling Atomics IntegerOperations.swift
[24/57] Compiling Atomics Unmanaged extensions.swift
[25/57] Compiling Atomics OptionalRawRepresentable.swift
[26/57] Compiling Atomics RawRepresentable.swift
[27/57] Compiling Atomics AtomicBool.swift
[28/57] Compiling ANSI Report.swift
[29/58] Compiling Atomics AtomicMemoryOrderings.swift
[30/58] Compiling Atomics DoubleWord.swift
[31/58] Compiling Atomics AtomicInteger.swift
[32/58] Compiling Atomics AtomicOptionalWrappable.swift
[33/58] Compiling Atomics AtomicReference.swift
[34/58] Compiling Atomics IntegerConformances.swift
[35/58] Compiling Atomics PointerConformances.swift
[36/58] Compiling Atomics Primitives.native.swift
[37/59] Compiling ANSI Screen.swift
[39/59] Compiling ANSI Color.swift
[39/59] Wrapping AST for Atomics for debugging
[41/59] Compiling ANSI Style.swift
[42/59] Compiling ANSI Erase.swift
[43/59] Compiling ANSI Cursor.swift
[44/59] Emitting module ANSI
[45/59] Compiling ANSI Hyperlink.swift
[48/60] Wrapping AST for ANSI for debugging
[50/67] Compiling TerminalCore TerminalConfiguration.swift
[51/67] Compiling TerminalCore TerminalError.swift
[52/67] Compiling TerminalCore TerminalSize.swift
/host/spi-builder-workspace/Sources/TerminalCore/TerminalSize.swift:33:43: error: cannot find 'STDOUT_FILENO' in scope
31 |
32 | /// Detect terminal size from file descriptor.
33 | public static func detect(fd: Int32 = STDOUT_FILENO) -> TerminalSize {
| `- error: cannot find 'STDOUT_FILENO' in scope
34 | #if canImport(Darwin)
35 | var ws = winsize()
[53/67] Compiling TerminalCore TerminalCapabilities.swift
/host/spi-builder-workspace/Sources/TerminalCore/TerminalCapabilities.swift:65:21: error: cannot find 'isatty' in scope
63 |
64 | // Check if running in a TTY
65 | let isTTY = isatty(STDOUT_FILENO) != 0
| `- error: cannot find 'isatty' in scope
66 |
67 | // Check for CI environment
/host/spi-builder-workspace/Sources/TerminalCore/TerminalCapabilities.swift:65:28: error: cannot find 'STDOUT_FILENO' in scope
63 |
64 | // Check if running in a TTY
65 | let isTTY = isatty(STDOUT_FILENO) != 0
| `- error: cannot find 'STDOUT_FILENO' in scope
66 |
67 | // Check for CI environment
error: emit-module command failed with exit code 1 (use -v to see invocation)
[54/67] Compiling TerminalCore Logger.swift
[55/67] Emitting module TerminalCore
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:72:24: error: cannot find 'STDIN_FILENO' in scope
70 | /// Create a new terminal instance with default configuration.
71 | public init() {
72 | self.inputFD = STDIN_FILENO
| `- error: cannot find 'STDIN_FILENO' in scope
73 | self.outputFD = STDOUT_FILENO
74 | self.errorFD = STDERR_FILENO
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:73:25: error: cannot find 'STDOUT_FILENO' in scope
71 | public init() {
72 | self.inputFD = STDIN_FILENO
73 | self.outputFD = STDOUT_FILENO
| `- error: cannot find 'STDOUT_FILENO' in scope
74 | self.errorFD = STDERR_FILENO
75 | self.configuration = .default
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:74:24: error: cannot find 'STDERR_FILENO' in scope
72 | self.inputFD = STDIN_FILENO
73 | self.outputFD = STDOUT_FILENO
74 | self.errorFD = STDERR_FILENO
| `- error: cannot find 'STDERR_FILENO' in scope
75 | self.configuration = .default
76 | self.capabilities = TerminalCapabilities.detect()
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:82:24: error: cannot find 'STDIN_FILENO' in scope
80 | /// Create a terminal instance with custom configuration.
81 | public init(configuration: TerminalConfiguration) {
82 | self.inputFD = STDIN_FILENO
| `- error: cannot find 'STDIN_FILENO' in scope
83 | self.outputFD = STDOUT_FILENO
84 | self.errorFD = STDERR_FILENO
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:83:25: error: cannot find 'STDOUT_FILENO' in scope
81 | public init(configuration: TerminalConfiguration) {
82 | self.inputFD = STDIN_FILENO
83 | self.outputFD = STDOUT_FILENO
| `- error: cannot find 'STDOUT_FILENO' in scope
84 | self.errorFD = STDERR_FILENO
85 | self.configuration = configuration
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:84:24: error: cannot find 'STDERR_FILENO' in scope
82 | self.inputFD = STDIN_FILENO
83 | self.outputFD = STDOUT_FILENO
84 | self.errorFD = STDERR_FILENO
| `- error: cannot find 'STDERR_FILENO' in scope
85 | self.configuration = configuration
86 | self.capabilities = TerminalCapabilities.detect()
/host/spi-builder-workspace/Sources/TerminalCore/TerminalSize.swift:33:43: error: cannot find 'STDOUT_FILENO' in scope
31 |
32 | /// Detect terminal size from file descriptor.
33 | public static func detect(fd: Int32 = STDOUT_FILENO) -> TerminalSize {
| `- error: cannot find 'STDOUT_FILENO' in scope
34 | #if canImport(Darwin)
35 | var ws = winsize()
[56/67] Compiling TerminalCore Terminal.swift
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:72:24: error: cannot find 'STDIN_FILENO' in scope
70 | /// Create a new terminal instance with default configuration.
71 | public init() {
72 | self.inputFD = STDIN_FILENO
| `- error: cannot find 'STDIN_FILENO' in scope
73 | self.outputFD = STDOUT_FILENO
74 | self.errorFD = STDERR_FILENO
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:73:25: error: cannot find 'STDOUT_FILENO' in scope
71 | public init() {
72 | self.inputFD = STDIN_FILENO
73 | self.outputFD = STDOUT_FILENO
| `- error: cannot find 'STDOUT_FILENO' in scope
74 | self.errorFD = STDERR_FILENO
75 | self.configuration = .default
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:74:24: error: cannot find 'STDERR_FILENO' in scope
72 | self.inputFD = STDIN_FILENO
73 | self.outputFD = STDOUT_FILENO
74 | self.errorFD = STDERR_FILENO
| `- error: cannot find 'STDERR_FILENO' in scope
75 | self.configuration = .default
76 | self.capabilities = TerminalCapabilities.detect()
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:82:24: error: cannot find 'STDIN_FILENO' in scope
80 | /// Create a terminal instance with custom configuration.
81 | public init(configuration: TerminalConfiguration) {
82 | self.inputFD = STDIN_FILENO
| `- error: cannot find 'STDIN_FILENO' in scope
83 | self.outputFD = STDOUT_FILENO
84 | self.errorFD = STDERR_FILENO
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:83:25: error: cannot find 'STDOUT_FILENO' in scope
81 | public init(configuration: TerminalConfiguration) {
82 | self.inputFD = STDIN_FILENO
83 | self.outputFD = STDOUT_FILENO
| `- error: cannot find 'STDOUT_FILENO' in scope
84 | self.errorFD = STDERR_FILENO
85 | self.configuration = configuration
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:84:24: error: cannot find 'STDERR_FILENO' in scope
82 | self.inputFD = STDIN_FILENO
83 | self.outputFD = STDOUT_FILENO
84 | self.errorFD = STDERR_FILENO
| `- error: cannot find 'STDERR_FILENO' in scope
85 | self.configuration = configuration
86 | self.capabilities = TerminalCapabilities.detect()
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:119:9: warning: using '_' to ignore the result of a Void-returning function is redundant
117 | public func writeError(_ string: String) {
118 | let data = Array(string.utf8)
119 | _ = data.withUnsafeBytes { buffer in
| `- warning: using '_' to ignore the result of a Void-returning function is redundant
120 | #if canImport(Darwin)
121 | Darwin.write(errorFD, buffer.baseAddress, buffer.count)
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:164:9: warning: using '_' to ignore the result of a Void-returning function is redundant
162 | private func writeToFD(_ string: String) {
163 | let data = Array(string.utf8)
164 | _ = data.withUnsafeBytes { buffer in
| `- warning: using '_' to ignore the result of a Void-returning function is redundant
165 | #if canImport(Darwin)
166 | Darwin.write(outputFD, buffer.baseAddress, buffer.count)
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:323:19: error: cannot find 'pollfd' in scope
321 | /// This is much faster than polling with sleep loops.
322 | public func waitForInput(timeoutMs: Int) -> Bool {
323 | var pfd = pollfd(fd: inputFD, events: Int16(POLLIN), revents: 0)
| `- error: cannot find 'pollfd' in scope
324 | let result = poll(&pfd, 1, Int32(timeoutMs))
325 | return result > 0 && (pfd.revents & Int16(POLLIN)) != 0
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:323:53: error: cannot find 'POLLIN' in scope
321 | /// This is much faster than polling with sleep loops.
322 | public func waitForInput(timeoutMs: Int) -> Bool {
323 | var pfd = pollfd(fd: inputFD, events: Int16(POLLIN), revents: 0)
| `- error: cannot find 'POLLIN' in scope
324 | let result = poll(&pfd, 1, Int32(timeoutMs))
325 | return result > 0 && (pfd.revents & Int16(POLLIN)) != 0
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:324:22: error: cannot find 'poll' in scope
322 | public func waitForInput(timeoutMs: Int) -> Bool {
323 | var pfd = pollfd(fd: inputFD, events: Int16(POLLIN), revents: 0)
324 | let result = poll(&pfd, 1, Int32(timeoutMs))
| `- error: cannot find 'poll' in scope
325 | return result > 0 && (pfd.revents & Int16(POLLIN)) != 0
326 | }
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:325:51: error: cannot find 'POLLIN' in scope
323 | var pfd = pollfd(fd: inputFD, events: Int16(POLLIN), revents: 0)
324 | let result = poll(&pfd, 1, Int32(timeoutMs))
325 | return result > 0 && (pfd.revents & Int16(POLLIN)) != 0
| `- error: cannot find 'POLLIN' in scope
326 | }
327 |
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:341:12: error: cannot find 'result' in scope
339 | let result = Glibc.read(inputFD, &byte, 1)
340 | #endif
341 | if result == 0 {
| `- error: cannot find 'result' in scope
342 | return nil // EOF
343 | } else if result < 0 {
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:343:19: error: cannot find 'result' in scope
341 | if result == 0 {
342 | return nil // EOF
343 | } else if result < 0 {
| `- error: cannot find 'result' in scope
344 | if errno == EAGAIN || errno == EWOULDBLOCK {
345 | return nil // No data available
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:344:16: error: cannot find 'errno' in scope
342 | return nil // EOF
343 | } else if result < 0 {
344 | if errno == EAGAIN || errno == EWOULDBLOCK {
| `- error: cannot find 'errno' in scope
345 | return nil // No data available
346 | }
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:344:25: error: cannot find 'EAGAIN' in scope
342 | return nil // EOF
343 | } else if result < 0 {
344 | if errno == EAGAIN || errno == EWOULDBLOCK {
| `- error: cannot find 'EAGAIN' in scope
345 | return nil // No data available
346 | }
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:344:35: error: cannot find 'errno' in scope
342 | return nil // EOF
343 | } else if result < 0 {
344 | if errno == EAGAIN || errno == EWOULDBLOCK {
| `- error: cannot find 'errno' in scope
345 | return nil // No data available
346 | }
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:344:44: error: cannot find 'EWOULDBLOCK' in scope
342 | return nil // EOF
343 | } else if result < 0 {
344 | if errno == EAGAIN || errno == EWOULDBLOCK {
| `- error: cannot find 'EWOULDBLOCK' in scope
345 | return nil // No data available
346 | }
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:347:76: error: cannot find 'strerror' in scope
345 | return nil // No data available
346 | }
347 | throw TerminalError.inputError("Read failed: \(String(cString: strerror(errno)))")
| `- error: cannot find 'strerror' in scope
348 | }
349 | return byte
/host/spi-builder-workspace/Sources/TerminalCore/Terminal.swift:347:85: error: cannot find 'errno' in scope
345 | return nil // No data available
346 | }
347 | throw TerminalError.inputError("Read failed: \(String(cString: strerror(errno)))")
| `- error: cannot find 'errno' in scope
348 | }
349 | return byte
BUILD FAILURE 6.3 android