Skip to content

Commit f8d0174

Browse files
committed
Build system recognizes OpenBSD.
Commit for CMake and build scripts to recognize OpenBSD. To keep this commit relatively short, this just deals with the rather simple and uncontroversial changes to the build system. Note that OpenBSD calls "x86_64" as "amd64", Since the Swift stdlib will be put in a subdirectory named after ARCH, to ensure the standard library is properly found later, we use the native architecture name for OpenBSD in the build system rather than trying to deal with the difference the other way around.
1 parent f724d1f commit f8d0174

File tree

15 files changed

+47
-3
lines changed

15 files changed

+47
-3
lines changed

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,8 @@ else()
570570
set(SWIFT_HOST_VARIANT_SDK_default "LINUX")
571571
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
572572
set(SWIFT_HOST_VARIANT_SDK_default "FREEBSD")
573+
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD")
574+
set(SWIFT_HOST_VARIANT_SDK_default "OPENBSD")
573575
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "CYGWIN")
574576
set(SWIFT_HOST_VARIANT_SDK_default "CYGWIN")
575577
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
@@ -673,6 +675,15 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "FREEBSD")
673675
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
674676
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
675677

678+
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "OPENBSD")
679+
680+
set(SWIFT_HOST_VARIANT "openbsd" CACHE STRING
681+
"Deployment OS for Swift host tools (the compiler) [openbsd].")
682+
683+
configure_sdk_unix("OpenBSD" "${SWIFT_HOST_VARIANT_ARCH}")
684+
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
685+
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
686+
676687
elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "CYGWIN")
677688

678689
set(SWIFT_HOST_VARIANT "cygwin" CACHE STRING

cmake/modules/FindICU.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ foreach(MODULE ${ICU_FIND_COMPONENTS})
2424
HINTS ${PC_ICU_${MODULE}_LIBRARY_DIRS})
2525
endforeach()
2626

27-
foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU)
27+
foreach(sdk ANDROID;FREEBSD;OPENBSD;LINUX;WINDOWS;HAIKU)
2828
foreach(MODULE ${ICU_FIND_COMPONENTS})
2929
string(TOUPPER "${MODULE}" MODULE)
3030
if("${SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE}_INCLUDE}" STREQUAL "")

cmake/modules/SwiftConfigureSDK.cmake

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,15 @@ macro(configure_sdk_unix name architectures)
320320
message(STATUS "FreeBSD Version: ${freebsd_system_version}")
321321

322322
set(SWIFT_SDK_FREEBSD_ARCH_x86_64_TRIPLE "x86_64-unknown-freebsd${freebsd_system_version}")
323+
elseif("${prefix}" STREQUAL "OPENBSD")
324+
if(NOT arch STREQUAL amd64)
325+
message(FATAL_ERROR "unsupported arch for OpenBSD: ${arch}")
326+
endif()
327+
328+
string(REPLACE "[-].*" "" openbsd_system_version ${CMAKE_SYSTEM_VERSION})
329+
message(STATUS "OpenBSD Version: ${openbsd_system_version}")
330+
331+
set(SWIFT_SDK_OPENBSD_ARCH_amd64_TRIPLE "amd64-unknown-openbsd${openbsd_system_version}")
323332
elseif("${prefix}" STREQUAL "CYGWIN")
324333
if(NOT arch STREQUAL x86_64)
325334
message(FATAL_ERROR "unsupported arch for cygwin: ${arch}")

cmake/modules/SwiftSetIfArchBitness.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ function(set_if_arch_bitness var_name)
1515
"${SIA_ARCH}" STREQUAL "armv7s")
1616
set("${var_name}" "${SIA_CASE_32_BIT}" PARENT_SCOPE)
1717
elseif("${SIA_ARCH}" STREQUAL "x86_64" OR
18+
"${SIA_ARCH}" STREQUAL "amd64" OR
1819
"${SIA_ARCH}" STREQUAL "arm64" OR
1920
"${SIA_ARCH}" STREQUAL "arm64e" OR
2021
"${SIA_ARCH}" STREQUAL "aarch64" OR

stdlib/private/RuntimeUnittest/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ add_swift_target_library(swiftRuntimeUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES
1010
SWIFT_MODULE_DEPENDS StdlibUnittest
1111
SWIFT_MODULE_DEPENDS_LINUX Glibc
1212
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
13+
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
1314
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
1415
SWIFT_MODULE_DEPENDS_HAIKU Glibc
1516
SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT

stdlib/private/StdlibCollectionUnittest/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ add_swift_target_library(swiftStdlibCollectionUnittest ${SWIFT_STDLIB_LIBRARY_BU
2121
SWIFT_MODULE_DEPENDS StdlibUnittest
2222
SWIFT_MODULE_DEPENDS_LINUX Glibc
2323
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
24+
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
2425
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
2526
SWIFT_MODULE_DEPENDS_HAIKU Glibc
2627
SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT

stdlib/private/StdlibUnicodeUnittest/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ add_swift_target_library(swiftStdlibUnicodeUnittest ${SWIFT_STDLIB_LIBRARY_BUILD
99
SWIFT_MODULE_DEPENDS StdlibUnittest
1010
SWIFT_MODULE_DEPENDS_LINUX Glibc
1111
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
12+
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
1213
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
1314
SWIFT_MODULE_DEPENDS_HAIKU Glibc
1415
SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT

stdlib/private/StdlibUnittest/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ add_swift_target_library(swiftStdlibUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
3838
SWIFT_MODULE_DEPENDS_WATCHOS Darwin Foundation
3939
SWIFT_MODULE_DEPENDS_LINUX Glibc
4040
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
41+
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
4142
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
4243
SWIFT_MODULE_DEPENDS_HAIKU Glibc
4344
SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT WinSDK

stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ add_swift_target_library(swiftSwiftPrivateLibcExtras ${SWIFT_STDLIB_LIBRARY_BUIL
1515
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
1616
SWIFT_MODULE_DEPENDS_LINUX Glibc
1717
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
18+
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
1819
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
1920
SWIFT_MODULE_DEPENDS_HAIKU Glibc
2021
SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT WinSDK

stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ add_swift_target_library(swiftSwiftPrivateThreadExtras ${SWIFT_STDLIB_LIBRARY_BU
1212
SWIFT_MODULE_DEPENDS_WATCHOS Darwin
1313
SWIFT_MODULE_DEPENDS_LINUX Glibc
1414
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
15+
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
1516
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
1617
SWIFT_MODULE_DEPENDS_HAIKU Glibc
1718
SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT WinSDK
1819
SWIFT_COMPILE_FLAGS ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
19-
TARGET_SDKS ALL_APPLE_PLATFORMS CYGWIN FREEBSD HAIKU LINUX WINDOWS ANDROID
20+
TARGET_SDKS ALL_APPLE_PLATFORMS CYGWIN FREEBSD OPENBSD HAIKU LINUX WINDOWS ANDROID
2021
INSTALL_IN_COMPONENT stdlib-experimental
2122
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
2223

0 commit comments

Comments
 (0)