Skip to content

Commit bdcc7b5

Browse files
committed
swiftpm bootstraps on OpenBSD.
Only minor changes are required, however because of #80059 and swiftpm's use of Concurrency, this only builds on the configuration where BTCFI is disabled. We can revisit some of that perhaps later; what matters is that swiftpm finally builds.
1 parent c8d439a commit bdcc7b5

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

Package.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ let package = Package(
227227
name: "Basics",
228228
dependencies: [
229229
"_AsyncFileSystem",
230-
.target(name: "SPMSQLite3", condition: .when(platforms: [.macOS, .iOS, .tvOS, .watchOS, .visionOS, .macCatalyst, .linux, .custom("freebsd")])),
230+
.target(name: "SPMSQLite3", condition: .when(platforms: [.macOS, .iOS, .tvOS, .watchOS, .visionOS, .macCatalyst, .linux, .openbsd, .custom("freebsd")])),
231231
.product(name: "SwiftToolchainCSQLite", package: "swift-toolchain-sqlite", condition: .when(platforms: [.windows, .android])),
232232
.product(name: "DequeModule", package: "swift-collections"),
233233
.product(name: "OrderedCollections", package: "swift-collections"),

Sources/SPMSQLite3/CMakeLists.txt

+3
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ target_include_directories(SPMSQLite3 INTERFACE
1111
${CMAKE_CURRENT_SOURCE_DIR})
1212
target_link_libraries(SPMSQLite3 INTERFACE
1313
SQLite::SQLite3)
14+
if(CMAKE_SYSTEM_NAME STREQUAL OpenBSD)
15+
target_link_options(SPMSQLite3 INTERFACE "-L/usr/local/lib")
16+
endif()

Utilities/bootstrap

+4
Original file line numberDiff line numberDiff line change
@@ -926,6 +926,10 @@ def get_swiftpm_flags(args):
926926
])
927927

928928
if '-openbsd' in args.build_target:
929+
# Because of swiftlang/swift#80059, swiftpm only works
930+
# with BTCFI disabled.
931+
if 'aarch64' in args.build_target:
932+
build_flags.extend(["-Xlinker", "-z", "-Xlinker", "nobtcfi"])
929933
build_flags.extend(["-Xlinker", "-z", "-Xlinker", "origin"])
930934
build_flags.extend(["-Xcc", "-I/usr/local/include"])
931935
build_flags.extend(["-Xlinker", "-L/usr/local/lib"])

0 commit comments

Comments
 (0)