From a0eb2acbb539d1e698fa2dcc7f2a1eb34cdb77a5 Mon Sep 17 00:00:00 2001 From: Alex Lorenz Date: Wed, 26 Jun 2024 17:49:37 -0700 Subject: [PATCH 1/2] [android] add android build support this is needed to build swift-corelibs-foundation for android, using the 'package' branch that is based on new swift-foundation --- .../LibraryPluginProvider.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Sources/SwiftLibraryPluginProvider/LibraryPluginProvider.swift b/Sources/SwiftLibraryPluginProvider/LibraryPluginProvider.swift index eb06cca2686..b156e3e849b 100644 --- a/Sources/SwiftLibraryPluginProvider/LibraryPluginProvider.swift +++ b/Sources/SwiftLibraryPluginProvider/LibraryPluginProvider.swift @@ -18,6 +18,8 @@ private import _SwiftLibraryPluginProviderCShims // because we don't want other modules depend on 'WinSDK'. #if canImport(Darwin) private import Darwin +#elseif canImport(Android) +private import Android #elseif canImport(Glibc) private import Glibc #elseif canImport(Musl) @@ -29,6 +31,8 @@ import SwiftSyntaxMacros @_implementationOnly import _SwiftLibraryPluginProviderCShims #if canImport(Darwin) @_implementationOnly import Darwin +#elseif canImport(Android) +@_implementationOnly import Android #elseif canImport(Glibc) @_implementationOnly import Glibc #elseif canImport(Musl) @@ -137,7 +141,12 @@ private func _loadLibrary(_ path: String) throws -> UnsafeMutableRawPointer { #else private func _loadLibrary(_ path: String) throws -> UnsafeMutableRawPointer { guard let dlHandle = dlopen(path, RTLD_LAZY | RTLD_LOCAL) else { - throw LibraryPluginError(message: "loader error: \(String(cString: dlerror()))") +#if canImport(Android) + let err = dlerror()! +#else + let err = dlerror() +#endif + throw LibraryPluginError(message: "loader error: \(String(cString: err))") } return dlHandle } From 154adfe481450ffb846cc45dbe2f452cd4891756 Mon Sep 17 00:00:00 2001 From: Alex Lorenz Date: Thu, 27 Jun 2024 08:37:23 -0700 Subject: [PATCH 2/2] Update LibraryPluginProvider.swift --- .../SwiftLibraryPluginProvider/LibraryPluginProvider.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/SwiftLibraryPluginProvider/LibraryPluginProvider.swift b/Sources/SwiftLibraryPluginProvider/LibraryPluginProvider.swift index b156e3e849b..193b0370e54 100644 --- a/Sources/SwiftLibraryPluginProvider/LibraryPluginProvider.swift +++ b/Sources/SwiftLibraryPluginProvider/LibraryPluginProvider.swift @@ -142,11 +142,11 @@ private func _loadLibrary(_ path: String) throws -> UnsafeMutableRawPointer { private func _loadLibrary(_ path: String) throws -> UnsafeMutableRawPointer { guard let dlHandle = dlopen(path, RTLD_LAZY | RTLD_LOCAL) else { #if canImport(Android) - let err = dlerror()! + let err = String(cString: dlerror()!) #else - let err = dlerror() + let err = String(cString: dlerror()) #endif - throw LibraryPluginError(message: "loader error: \(String(cString: err))") + throw LibraryPluginError(message: "loader error: \(err)") } return dlHandle }