Build Information
Failed to build GfxMath, reference 1.0.0 (af8aff), with Swift 6.4 for Android on 19 Sep 2026 16:57:43 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344845-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/UnGast/swift-gfx-math.git
Reference: 1.0.0
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/UnGast/swift-gfx-math
* tag 1.0.0 -> FETCH_HEAD
HEAD is now at af8affa fix line initializer
Cloned https://github.com/UnGast/swift-gfx-math.git
Revision (git rev-parse @):
af8affa142ac61ff2b95857a145aabcc7dd9a7bc
SUCCESS checkout https://github.com/UnGast/swift-gfx-math.git at 1.0.0
========================================
Build
========================================
Selected platform: android
Swift version: 6.4
Building package at path: $PWD
https://github.com/UnGast/swift-gfx-math.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344845-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:abadcff584c273feba50641b454858d377ba30b35ea7287a94f45ebd8afd0ea0
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Building for debugging...
[Planning deferred tasks]
error: SwiftCompile normal aarch64 failed with a nonzero exit code. Command line: cd /host
[28 / 36] GfxMath
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: [1;33mwarning: [1;39mredeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol[0;0m
[0;36m2 |[0;0m
[0;36m3 |[0;0m public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
[0;36m4 |[0;0m associatedtype Element: Numeric
[0;36m|[0;0m `- [1;33mwarning: [1;39mredeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol[0;0m
[0;36m5 |[0;0m var rows: Int { get }
[0;36m6 |[0;0m var cols: Int { get }
Swift.Sequence.Element:2:16: [1;39mnote: [1;39m'Element' declared here[0;0m
[0;36m1 |[0;0m protocol Sequence {
[0;36m2 |[0;0m associatedtype Element where Self.Element == Self.Iterator.Element}
[0;36m|[0;0m `- [1;39mnote: [1;39m'Element' declared here[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:45:16: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m43 |[0;0m
[0;36m44 |[0;0m // TODO: there might be a more efficient way to transpose
[0;36m45 |[0;0m @inlinable public var transposed: Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m46 |[0;0m var matrix = clone() // TODO: maybe have some clone function that does not clone elements
[0;36m47 |[0;0m
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:16: [1;33mwarning: [1;39munrecognized platform name 'unavailable'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/availability-unrecognized-name\AvailabilityUnrecognizedName]8;;\]
[0;36m221 |[0;0m }
[0;36m222 |[0;0m
[0;36m223 |[0;0m @available(unavailable, message: "need to know size of matrix, use init")
[0;36m|[0;0m `- [1;33mwarning: [1;39munrecognized platform name 'unavailable'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/availability-unrecognized-name\AvailabilityUnrecognizedName]8;;\]
[0;36m224 |[0;0m @inlinable public static var zero: Self {
[0;36m225 |[0;0m fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:266:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m264 |[0;0m public extension Matrix4Protocol {
[0;36m265 |[0;0m
[0;36m266 |[0;0m public init<M3: Matrix3Protocol>(topLeft: M3, rest: Self = .identity) where M3.Element == Element {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m267 |[0;0m self.init([
[0;36m268 |[0;0m topLeft[0, 0], topLeft[0, 1], topLeft[0, 2], rest[0, 3],
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: [1;33mwarning: [1;39mtypealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol[0;0m
[0;36m99 |[0;0m
[0;36m100 |[0;0m extension Vector3Protocol {
[0;36m101 |[0;0m public typealias Dimension = Dim_3x1
[0;36m|[0;0m `- [1;33mwarning: [1;39mtypealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol[0;0m
[0;36m102 |[0;0m
[0;36m103 |[0;0m @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: [1;39mnote: [1;39m'Dimension' declared here[0;0m
[0;36m2 |[0;0m
[0;36m3 |[0;0m public protocol VectorProtocol: MatrixProtocol {
[0;36m4 |[0;0m associatedtype Dimension: MatrixDimension
[0;36m|[0;0m `- [1;39mnote: [1;39m'Dimension' declared here[0;0m
[0;36m5 |[0;0m
[0;36m6 |[0;0m init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:174:20: [1;33mwarning: [1;39mtypealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol[0;0m
[0;36m172 |[0;0m
[0;36m173 |[0;0m extension Vector4Protocol {
[0;36m174 |[0;0m public typealias Dimension = Dim_4x1
[0;36m|[0;0m `- [1;33mwarning: [1;39mtypealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol[0;0m
[0;36m175 |[0;0m
[0;36m176 |[0;0m @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: [1;39mnote: [1;39m'Dimension' declared here[0;0m
[0;36m2 |[0;0m
[0;36m3 |[0;0m public protocol VectorProtocol: MatrixProtocol {
[0;36m4 |[0;0m associatedtype Dimension: MatrixDimension
[0;36m|[0;0m `- [1;39mnote: [1;39m'Dimension' declared here[0;0m
[0;36m5 |[0;0m
[0;36m6 |[0;0m init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:345:16: [1;33mwarning: [1;39mno calls to throwing functions occur within 'try' expression[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\]
[0;36m343 |[0;0m // TODO: the following functions might be specific to openGL, maybe put those in the GLGraphicsMath package
[0;36m344 |[0;0m @inlinable static func viewTransformation<V: Vector3Protocol>(up: V, right: V, front: V, translation: V) -> Self where V.Element == Self.Element {
[0;36m345 |[0;0m return try! Self([
[0;36m|[0;0m `- [1;33mwarning: [1;39mno calls to throwing functions occur within 'try' expression[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\]
[0;36m346 |[0;0m right.x, right.y, right.z, 0,
[0;36m347 |[0;0m up.x, up.y, up.z, 0,
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:404:12: [1;33mwarning: [1;39mno calls to throwing functions occur within 'try' expression[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\]
[0;36m402 |[0;0m // TODO: might replace this or remove this / current function of this is to simply remove throws
[0;36m403 |[0;0m @inlinable public func * <E: Numeric>(lhs: Matrix4<E>, rhs: Matrix4<E>) -> Matrix4<E> {
[0;36m404 |[0;0m return try! lhs.matmul(rhs)
[0;36m|[0;0m `- [1;33mwarning: [1;39mno calls to throwing functions occur within 'try' expression[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\]
[0;36m405 |[0;0m }
[0;36m406 |[0;0m
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: [1;33mwarning: [1;39mtypealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol[0;0m
[0;36m26 |[0;0m
[0;36m27 |[0;0m extension Vector2Protocol {
[0;36m28 |[0;0m public typealias Dimension = Dim_2x1
[0;36m|[0;0m `- [1;33mwarning: [1;39mtypealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: [1;39mnote: [1;39m'Dimension' declared here[0;0m
[0;36m2 |[0;0m
[0;36m3 |[0;0m public protocol VectorProtocol: MatrixProtocol {
[0;36m4 |[0;0m associatedtype Dimension: MatrixDimension
[0;36m|[0;0m `- [1;39mnote: [1;39m'Dimension' declared here[0;0m
[0;36m5 |[0;0m
[0;36m6 |[0;0m init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:123:15: [1;33mwarning: [1;39mdeprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m8 |[0;0m
[0;36m9 |[0;0m init()
[0;36m10 |[0;0m init(point: VectorProtocol, direction: VectorProtocol)
[0;36m|[0;0m `- [1;39mnote: [1;39mrequirement 'init(point:direction:)' declared here[0;0m
[0;36m11 |[0;0m init(origin: VectorProtocol, direction: VectorProtocol)
[0;36m12 |[0;0m }
[0;36m:[0;0m
[0;36m14 |[0;0m public extension Line {
[0;36m15 |[0;0m @available(*, deprecated, message: "use init(origin:, direction:)")
[0;36m16 |[0;0m init(point: VectorProtocol, direction: VectorProtocol) {
[0;36m|[0;0m `- [1;39mnote: [1;39m'init(point:direction:)' declared here[0;0m
[0;36m17 |[0;0m self.init(origin: point, direction: direction)
[0;36m18 |[0;0m }
[0;36m:[0;0m
[0;36m121 |[0;0m }
[0;36m122 |[0;0m
[0;36m123 |[0;0m public struct AnyLine<V: VectorProtocol>: Line where V.Element: BinaryFloatingPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39mdeprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m124 |[0;0m public typealias VectorProtocol = V
[0;36m125 |[0;0m public var origin: V
/host/spi-builder-workspace/Sources/GfxMath/geometry/Plane.swift:16:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m14 |[0;0m }
[0;36m15 |[0;0m
[0;36m16 |[0;0m public init(point: VectorProtocol, normal: VectorProtocol) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m17 |[0;0m self.init()
[0;36m18 |[0;0m self.point = point
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:27: [1;33mwarning: [1;39mno calls to throwing functions occur within 'try' expression[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\]
[0;36m242 |[0;0m -> VectorProtocol where Self.Element == VectorProtocol.Element
[0;36m243 |[0;0m {
[0;36m244 |[0;0m return VectorProtocol(try! self.matmul(other).elements)
[0;36m|[0;0m `- [1;33mwarning: [1;39mno calls to throwing functions occur within 'try' expression[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\]
[0;36m245 |[0;0m }
[0;36m246 |[0;0m }
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol+Operators.swift:162:10: [1;31merror: [1;39mcannot convert value of type 'Self.Element' to expected argument type 'Double'[0;0m
[0;36m160 |[0;0m
[0;36m161 |[0;0m @inlinable public var length: Element {
[0;36m162 |[0;0m sqrt(lengthSquared)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type 'Self.Element' to expected argument type 'Double'[0;0m
[0;36m163 |[0;0m }
[0;36m164 |[0;0m
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol+Operators.swift:162:5: [1;31merror: [1;39mcannot convert return expression of type 'Double' to return type 'Self.Element'[0;0m
[0;36m160 |[0;0m
[0;36m161 |[0;0m @inlinable public var length: Element {
[0;36m162 |[0;0m [4;39msqrt(lengthSquared)[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert return expression of type 'Double' to return type 'Self.Element'[0;0m
[0;36m163 |[0;0m }
[0;36m164 |[0;0m
[#AvailabilityUnrecognizedName]: <https://docs.swift.org/compiler/documentation/diagnostics/availability-unrecognized-name>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#UnnecessaryEffectMarker]: <https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker>
Failed frontend command:
/root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/Sources/GfxMath/Accuracy.swift /host/spi-builder-workspace/Sources/GfxMath/Color/Color+Conversions.swift /host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift /host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift /host/spi-builder-workspace/Sources/GfxMath/Color/Experimental/EColor.swift /host/spi-builder-workspace/Sources/GfxMath/Color/Experimental/RGBColor.swift /host/spi-builder-workspace/Sources/GfxMath/FloatingPointGenericMath.swift /host/spi-builder-workspace/Sources/GfxMath/Matrix.swift /host/spi-builder-workspace/Sources/GfxMath/MatrixDimension.swift /host/spi-builder-workspace/Sources/GfxMath/Point.swift /host/spi-builder-workspace/Sources/GfxMath/Quaternion.swift /host/spi-builder-workspace/Sources/GfxMath/Size.swift /host/spi-builder-workspace/Sources/GfxMath/Transform.swift /host/spi-builder-workspace/Sources/GfxMath/Transformation.swift /host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift /host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift /host/spi-builder-workspace/Sources/GfxMath/geometry/Plane.swift /host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift /host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift /host/spi-builder-workspace/Sources/GfxMath/vector/VectorLayout.swift /host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol+Initializers.swift /host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol+Operators.swift /host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift -target aarch64-unknown-linux-android28 -Xllvm -aarch64-use-tbi -disable-objc-interop -sdk /android-ndk/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -sysroot /android-ndk/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -I /host/spi-builder-workspace/.build/out/Products/Debug-android-aarch64 -module-cache-path /host/spi-builder-workspace/.build/out/ModuleCache.noindex -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/lib/swift/host/plugins/testing\#/root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/bin/swift-plugin-server -validate-clang-modules-once -clang-build-session-file /host/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /host -resource-dir /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_android.artifactbundle/swift-android/swift-resources/usr/lib/swift-aarch64 -enable-anonymous-context-mangled-names -file-compilation-dir /host -Xcc -resource-dir -Xcc /android-ndk/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -Xcc -fno-omit-frame-pointer -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/host/spi-builder-workspace/.build/out/Products/Debug-android-aarch64/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name GfxMath -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/Objects-normal/aarch64/GfxMath_const_extract_protocols.json -in-process-plugin-server-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/lib/swift/host/plugins -plugin-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/local/lib/swift/host/plugins -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/Objects-normal/aarch64/Modules/GfxMath.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/Objects-normal/aarch64/Modules/GfxMath.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/Objects-normal/aarch64/GfxMath-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/Objects-normal/aarch64/GfxMath-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/Objects-normal/aarch64/GfxMath-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/GfxMath.build/Debug-android-aarch64/GfxMath-t.build/Objects-normal/aarch64/Modules/GfxMath.swiftmodule
error: Build failed
BUILD FAILURE 6.4 android