Skip to content

Commit 164873c

Browse files
authored
Merge pull request #650 from swiftwasm/master
[pull] swiftwasm from master
2 parents 2d692f7 + 95bdd01 commit 164873c

File tree

17 files changed

+61
-4
lines changed

17 files changed

+61
-4
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")
@@ -675,6 +677,15 @@ elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "FREEBSD")
675677
set(SWIFT_PRIMARY_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}")
676678
set(SWIFT_PRIMARY_VARIANT_ARCH_default "${SWIFT_HOST_VARIANT_ARCH}")
677679

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

680691
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
@@ -337,6 +337,15 @@ macro(configure_sdk_unix name architectures)
337337
message(STATUS "FreeBSD Version: ${freebsd_system_version}")
338338

339339
set(SWIFT_SDK_FREEBSD_ARCH_x86_64_TRIPLE "x86_64-unknown-freebsd${freebsd_system_version}")
340+
elseif("${prefix}" STREQUAL "OPENBSD")
341+
if(NOT arch STREQUAL amd64)
342+
message(FATAL_ERROR "unsupported arch for OpenBSD: ${arch}")
343+
endif()
344+
345+
string(REPLACE "[-].*" "" openbsd_system_version ${CMAKE_SYSTEM_VERSION})
346+
message(STATUS "OpenBSD Version: ${openbsd_system_version}")
347+
348+
set(SWIFT_SDK_OPENBSD_ARCH_amd64_TRIPLE "amd64-unknown-openbsd${openbsd_system_version}")
340349
elseif("${prefix}" STREQUAL "CYGWIN")
341350
if(NOT arch STREQUAL x86_64)
342351
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
@@ -16,6 +16,7 @@ function(set_if_arch_bitness var_name)
1616
"${SIA_ARCH}" STREQUAL "wasm32")
1717
set("${var_name}" "${SIA_CASE_32_BIT}" PARENT_SCOPE)
1818
elseif("${SIA_ARCH}" STREQUAL "x86_64" OR
19+
"${SIA_ARCH}" STREQUAL "amd64" OR
1920
"${SIA_ARCH}" STREQUAL "arm64" OR
2021
"${SIA_ARCH}" STREQUAL "arm64e" OR
2122
"${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 SwiftPrivateThreadExtras
3939
SWIFT_MODULE_DEPENDS_LINUX Glibc SwiftPrivateThreadExtras
4040
SWIFT_MODULE_DEPENDS_FREEBSD Glibc SwiftPrivateThreadExtras
41+
SWIFT_MODULE_DEPENDS_OPENBSD Glibc SwiftPrivateThreadExtras
4142
SWIFT_MODULE_DEPENDS_CYGWIN Glibc SwiftPrivateThreadExtras
4243
SWIFT_MODULE_DEPENDS_HAIKU Glibc SwiftPrivateThreadExtras
4344
SWIFT_MODULE_DEPENDS_WASI Glibc

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_WASI Glibc

stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ 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_WASI Glibc
1819
SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT WinSDK
1920
SWIFT_COMPILE_FLAGS ${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
20-
TARGET_SDKS ALL_APPLE_PLATFORMS CYGWIN FREEBSD HAIKU LINUX WINDOWS ANDROID
21+
TARGET_SDKS ALL_APPLE_PLATFORMS CYGWIN FREEBSD OPENBSD HAIKU LINUX WINDOWS ANDROID
2122
INSTALL_IN_COMPONENT stdlib-experimental
2223
DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}")
2324

stdlib/public/Platform/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_O
4444
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
4545
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
4646
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
47-
TARGET_SDKS ANDROID CYGWIN FREEBSD LINUX HAIKU WASI
47+
TARGET_SDKS ANDROID CYGWIN FREEBSD OPENBSD LINUX HAIKU WASI
4848
INSTALL_IN_COMPONENT sdk-overlay
4949
DEPENDS glibc_modulemap)
5050

@@ -68,6 +68,7 @@ set(glibc_modulemap_target_list)
6868
foreach(sdk ${SWIFT_SDKS})
6969
if(NOT "${sdk}" STREQUAL "LINUX" AND
7070
NOT "${sdk}" STREQUAL "FREEBSD" AND
71+
NOT "${sdk}" STREQUAL "OPENBSD" AND
7172
NOT "${sdk}" STREQUAL "ANDROID" AND
7273
NOT "${sdk}" STREQUAL "CYGWIN" AND
7374
NOT "${sdk}" STREQUAL "HAIKU" AND

stdlib/public/core/OutputStream.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,12 @@ internal func _print_unlocked<T, TargetStream: TextOutputStream>(
391391
debugPrintable.debugDescription.write(to: &target)
392392
return
393393
}
394+
395+
if let string = value as? String {
396+
target.write(string)
397+
return
398+
}
399+
394400
if case let streamableObject as TextOutputStreamable = value {
395401
streamableObject.write(to: &target)
396402
return

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ function(get_test_dependencies SDK result_var_name)
9292
("${SDK}" STREQUAL "LINUX") OR
9393
("${SDK}" STREQUAL "CYGWIN") OR
9494
("${SDK}" STREQUAL "FREEBSD") OR
95+
("${SDK}" STREQUAL "OPENBSD") OR
9596
("${SDK}" STREQUAL "ANDROID") OR
9697
("${SDK}" STREQUAL "WINDOWS") OR
9798
("${SDK}" STREQUAL "HAIKU") OR

utils/build-script-impl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@ function verify_host_is_supported() {
415415
local host="$1"
416416
case ${host} in
417417
freebsd-x86_64 \
418+
| openbsd-amd64 \
418419
| cygwin-x86_64 \
419420
| haiku-x86_64 \
420421
| linux-x86_64 \

utils/run-test

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ def main():
126126
choices=["true", "verbose", "skip"], default='true',
127127
help="build test dependencies before running tests "
128128
"(default: true)")
129+
parser.add_argument("--build-jobs",
130+
type=int,
131+
help="The number of parallel build jobs to use")
129132
parser.add_argument("--target",
130133
type=argparse.types.ShellSplitType(),
131134
action=argparse.actions.AppendAction,
@@ -232,7 +235,11 @@ def main():
232235
cmake_build = ['cmake', '--build', build_dir, '--']
233236
if args.build == 'verbose':
234237
cmake_build += ['-v']
235-
cmake_build += ['-j%d' % multiprocessing.cpu_count()]
238+
239+
if args.build_jobs is not None:
240+
cmake_build += ['-j%d' % args.build_jobs]
241+
else:
242+
cmake_build += ['-j%d' % multiprocessing.cpu_count()]
236243

237244
print("--- Building test dependencies %s ---" %
238245
', '.join(dependency_targets))

utils/swift_build_support/swift_build_support/targets.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ class StdlibDeploymentTarget(object):
150150

151151
FreeBSD = Platform("freebsd", archs=["x86_64"])
152152

153+
OpenBSD = Platform("openbsd", archs=["amd64"])
154+
153155
Cygwin = Platform("cygwin", archs=["x86_64"])
154156

155157
Android = AndroidPlatform("android", archs=["armv7", "aarch64"])
@@ -168,6 +170,7 @@ class StdlibDeploymentTarget(object):
168170
AppleWatch, AppleWatchSimulator,
169171
Linux,
170172
FreeBSD,
173+
OpenBSD,
171174
Cygwin,
172175
Android,
173176
Windows,
@@ -224,6 +227,10 @@ def host_target():
224227
if machine == 'amd64':
225228
return StdlibDeploymentTarget.FreeBSD.x86_64
226229

230+
elif system == 'OpenBSD':
231+
if machine == 'amd64':
232+
return StdlibDeploymentTarget.OpenBSD.amd64
233+
227234
elif system == 'CYGWIN_NT-10.0':
228235
if machine == 'x86_64':
229236
return StdlibDeploymentTarget.Cygwin.x86_64

utils/swift_build_support/swift_build_support/toolchain.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,11 @@ def _release_date(self):
176176
return int(out)
177177

178178

179+
class OpenBSD(GenericUnix):
180+
def __init__(self):
181+
super(OpenBSD, self).__init__([''])
182+
183+
179184
class Cygwin(Linux):
180185
# Currently, Cygwin is considered as the same as Linux.
181186
pass
@@ -203,6 +208,8 @@ def host_toolchain(**kwargs):
203208
return Linux()
204209
elif sys == 'FreeBSD':
205210
return FreeBSD()
211+
elif sys == 'OpenBSD':
212+
return OpenBSD()
206213
elif sys.startswith('CYGWIN'):
207214
return Cygwin()
208215
elif sys == 'Windows':

0 commit comments

Comments
 (0)