Skip to content

Commit 252eab1

Browse files
committed
Add Fuchsia OS Support
Adds Fuchsia target support to the compiler and builds the stdlib for Fuchsia.
1 parent 636252a commit 252eab1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+465
-67
lines changed

CMakeLists.txt

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,32 @@ set(SWIFT_ANDROID_DEPLOY_DEVICE_PATH "" CACHE STRING
181181
"Path on an Android device where build products will be pushed. These are used when running the test suite against the device")
182182

183183
#
184-
# User-configurable ICU specific options for Android, FreeBSD, Linux and Haiku.
184+
# User-configurable Fuchsia specific options
185+
#
186+
187+
set(SWIFT_FUCHSIA_AARCH64_SYSROOT "" CACHE STRING
188+
"Path to a Fuchsia zircon aarch64 sysroot directory")
189+
190+
set(SWIFT_FUCHSIA_X86_64_SYSROOT "" CACHE STRING
191+
"Path to a Fuchsia zircon x86_64 sysroot directory")
192+
193+
set(SWIFT_FUCHSIA_AARCH64_LIBS "" CACHE STRING
194+
"Path to a Fuchsia aarch64 shared libs directory")
195+
196+
set(SWIFT_FUCHSIA_X86_64_LIBS "" CACHE STRING
197+
"Path to a Fuchsia x86_64 shared libs directory")
198+
199+
set(SWIFT_FUCHSIA_ICU_UC_INCLUDE "" CACHE STRING
200+
"Path to a directory containing Fuchsia's ICU common headers")
201+
202+
set(SWIFT_FUCHSIA_ICU_I18N_INCLUDE "" CACHE STRING
203+
"Path to a directory containing Fuchsia's ICU i18n headers")
204+
205+
set(SWIFT_FUCHSIA_TOOLCHAIN_PATH "" CACHE STRING
206+
"Path to a directory containing a Fuchsia clang toolchain")
207+
208+
#
209+
# User-configurable ICU specific options for non-Darwin SDKs.
185210
#
186211

187212
foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU)
@@ -736,10 +761,10 @@ if(swift_build_android AND NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
736761

737762
set(SWIFT_ANDROID_PREBUILT_PATH
738763
"${SWIFT_ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_suffix}")
739-
764+
740765
# Resolve the correct linker based on the file name of CMAKE_LINKER (being 'ld' or 'ld.gold' the options)
741766
get_filename_component(SWIFT_ANDROID_LINKER_NAME "${CMAKE_LINKER}" NAME)
742-
set(SWIFT_SDK_ANDROID_ARCH_armv7_LINKER
767+
set(SWIFT_SDK_ANDROID_ARCH_armv7_LINKER
743768
"${SWIFT_ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-${SWIFT_ANDROID_NDK_GCC_VERSION}/prebuilt/${_swift_android_prebuilt_suffix}/bin/arm-linux-androideabi-${SWIFT_ANDROID_LINKER_NAME}")
744769

745770
configure_sdk_unix(ANDROID "Android" "android" "android" "armv7" "armv7-none-linux-androideabi" "${SWIFT_ANDROID_SDK_PATH}")
@@ -753,6 +778,34 @@ if(swift_build_android AND NOT "${SWIFT_ANDROID_NDK_PATH}" STREQUAL "")
753778
endif()
754779
endif()
755780

781+
# Should we cross-compile the standard library for Fuchsia
782+
is_sdk_requested(FUCHSIA swift_build_fuchsia)
783+
if(swift_build_fuchsia)
784+
set(fuchsia_archs)
785+
786+
if (NOT SWIFT_FUCHSIA_AARCH64_SYSROOT STREQUAL "")
787+
set(SWIFT_SDK_FUCHSIA_ARCH_aarch64_PATH "${SWIFT_FUCHSIA_AARCH64_SYSROOT}")
788+
list(APPEND fuchsia_archs "aarch64")
789+
endif()
790+
if (NOT SWIFT_FUCHSIA_X86_64_SYSROOT STREQUAL "")
791+
set(SWIFT_SDK_FUCHSIA_ARCH_x86_64_PATH "${SWIFT_FUCHSIA_X86_64_SYSROOT}")
792+
list(APPEND fuchsia_archs "x86_64")
793+
endif()
794+
795+
set(SWIFT_FUCHSIA_ICU_UC "-licuuc")
796+
set(SWIFT_FUCHSIA_ICU_I18N "-licui18n")
797+
798+
configure_sdk_fuchsia(FUCHSIA "Fuchsia" "fuchsia" "fuchsia" "${fuchsia_archs}")
799+
800+
if (NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux"))
801+
message(FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Fuchsia")
802+
elseif(("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" AND NOT swift_build_osx) OR
803+
("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT swift_build_linux))
804+
set(SWIFT_PRIMARY_VARIANT_SDK_default "FUCHSIA")
805+
set(SWIFT_PRIMARY_VARIANT_ARCH_default "x86_64")
806+
endif()
807+
endif()
808+
756809
# Should we cross-compile the standard library for Windows?
757810
is_sdk_requested(WINDOWS swift_build_windows)
758811
if(swift_build_windows AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")

cmake/modules/AddSwift.cmake

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ function(_add_variant_c_compile_link_flags)
119119
"-B" "${SWIFT_ANDROID_PREBUILT_PATH}/arm-linux-androideabi/bin/")
120120
endif()
121121

122+
if("${CFLAGS_SDK}" STREQUAL "FUCHSIA")
123+
list(APPEND result
124+
"-I${SWIFT_FUCHSIA_TOOLCHAIN_PATH}/lib/${CFLAGS_ARCH}-fuchsia/include/c++/v1/")
125+
endif()
126+
122127
if(IS_DARWIN)
123128
# Check if there's a specific OS deployment version needed for this invocation
124129
if("${CFLAGS_SDK}" STREQUAL "OSX")
@@ -270,6 +275,18 @@ function(_add_variant_c_compile_flags)
270275
"-I${SWIFT_ANDROID_NDK_PATH}/sources/android/support/include")
271276
endif()
272277

278+
if("${CFLAGS_SDK}" STREQUAL "FUCHSIA")
279+
if ("${CFLAGS_ARCH}" STREQUAL "x86_64")
280+
# LLVM may assume that CMPXCHG16B instruction doesn't exist on some x64 cpus
281+
# and will attempt to replace it with a libcall to a libgcc function that
282+
# doesn't exist in compiler-rt
283+
list(APPEND result "-mcx16")
284+
endif()
285+
list(APPEND result
286+
"-I${SWIFT_FUCHSIA_ICU_CU_INCLUDE}"
287+
"-I${SWIFT_FUCHSIA_ICU_I18N_INCLUDE}")
288+
endif()
289+
273290
set("${CFLAGS_RESULT_VAR_NAME}" "${result}" PARENT_SCOPE)
274291
endfunction()
275292

@@ -369,6 +386,13 @@ function(_add_variant_link_flags)
369386
list(APPEND library_search_directories
370387
"${SWIFT_ANDROID_PREBUILT_PATH}/arm-linux-androideabi/lib/armv7-a"
371388
"${SWIFT_ANDROID_PREBUILT_PATH}/lib/gcc/arm-linux-androideabi/${SWIFT_ANDROID_NDK_GCC_VERSION}.x")
389+
elseif("${LFLAGS_SDK}" STREQUAL "FUCHSIA")
390+
list(APPEND result "-lc" "-ldl" "-lzircon" "-lfdio")
391+
if (LFLAGS_ARCH STREQUAL "aarch64")
392+
list(APPEND library_search_directories "${SWIFT_FUCHSIA_AARCH64_LIBS}")
393+
elseif (LFLAGS_ARCH STREQUAL "x86_64")
394+
list(APPEND library_search_directories "${SWIFT_FUCHSIA_X86_64_LIBS}")
395+
endif()
372396
else()
373397
# If lto is enabled, we need to add the object path flag so that the LTO code
374398
# generator leaves the intermediate object file in a place where it will not
@@ -1294,6 +1318,9 @@ endfunction()
12941318
# SWIFT_MODULE_DEPENDS_CYGWIN
12951319
# Swift modules this library depends on when built for Cygwin.
12961320
#
1321+
# SWIFT_MODULE_DEPENDS_FUCHSIA
1322+
# Swift modules this library depends on when built for Fuchsia.
1323+
#
12971324
# SWIFT_MODULE_DEPENDS_HAIKU
12981325
# Swift modules this library depends on when built for Haiku.
12991326
#
@@ -1370,7 +1397,7 @@ function(add_swift_library name)
13701397
cmake_parse_arguments(SWIFTLIB
13711398
"${SWIFTLIB_options}"
13721399
"INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS"
1373-
"DEPENDS;LINK_LIBRARIES;SWIFT_MODULE_DEPENDS;SWIFT_MODULE_DEPENDS_OSX;SWIFT_MODULE_DEPENDS_IOS;SWIFT_MODULE_DEPENDS_TVOS;SWIFT_MODULE_DEPENDS_WATCHOS;SWIFT_MODULE_DEPENDS_FREEBSD;SWIFT_MODULE_DEPENDS_LINUX;SWIFT_MODULE_DEPENDS_CYGWIN;SWIFT_MODULE_DEPENDS_HAIKU;FRAMEWORK_DEPENDS;FRAMEWORK_DEPENDS_WEAK;FRAMEWORK_DEPENDS_OSX;FRAMEWORK_DEPENDS_IOS_TVOS;LLVM_COMPONENT_DEPENDS;FILE_DEPENDS;TARGET_SDKS;C_COMPILE_FLAGS;SWIFT_COMPILE_FLAGS;SWIFT_COMPILE_FLAGS_OSX;SWIFT_COMPILE_FLAGS_IOS;SWIFT_COMPILE_FLAGS_TVOS;SWIFT_COMPILE_FLAGS_WATCHOS;LINK_FLAGS;PRIVATE_LINK_LIBRARIES;INTERFACE_LINK_LIBRARIES;INCORPORATE_OBJECT_LIBRARIES;INCORPORATE_OBJECT_LIBRARIES_SHARED_ONLY"
1400+
"DEPENDS;LINK_LIBRARIES;SWIFT_MODULE_DEPENDS;SWIFT_MODULE_DEPENDS_OSX;SWIFT_MODULE_DEPENDS_IOS;SWIFT_MODULE_DEPENDS_TVOS;SWIFT_MODULE_DEPENDS_WATCHOS;SWIFT_MODULE_DEPENDS_FREEBSD;SWIFT_MODULE_DEPENDS_LINUX;SWIFT_MODULE_DEPENDS_CYGWIN;SWIFT_MODULE_DEPENDS_FUCHSIA;SWIFT_MODULE_DEPENDS_HAIKU;FRAMEWORK_DEPENDS;FRAMEWORK_DEPENDS_WEAK;FRAMEWORK_DEPENDS_OSX;FRAMEWORK_DEPENDS_IOS_TVOS;LLVM_COMPONENT_DEPENDS;FILE_DEPENDS;TARGET_SDKS;C_COMPILE_FLAGS;SWIFT_COMPILE_FLAGS;SWIFT_COMPILE_FLAGS_OSX;SWIFT_COMPILE_FLAGS_IOS;SWIFT_COMPILE_FLAGS_TVOS;SWIFT_COMPILE_FLAGS_WATCHOS;LINK_FLAGS;PRIVATE_LINK_LIBRARIES;INTERFACE_LINK_LIBRARIES;INCORPORATE_OBJECT_LIBRARIES;INCORPORATE_OBJECT_LIBRARIES_SHARED_ONLY"
13741401
${ARGN})
13751402
set(SWIFTLIB_SOURCES ${SWIFTLIB_UNPARSED_ARGUMENTS})
13761403

@@ -1401,7 +1428,7 @@ function(add_swift_library name)
14011428
if("${SWIFTLIB_TARGET_SDKS}" STREQUAL "")
14021429
set(SWIFTLIB_TARGET_SDKS ${SWIFT_SDKS})
14031430
endif()
1404-
list_replace(SWIFTLIB_TARGET_SDKS ALL_POSIX_PLATFORMS "ALL_APPLE_PLATFORMS;ANDROID;CYGWIN;FREEBSD;LINUX;HAIKU")
1431+
list_replace(SWIFTLIB_TARGET_SDKS ALL_POSIX_PLATFORMS "ALL_APPLE_PLATFORMS;ANDROID;CYGWIN;FREEBSD;LINUX;FUCHSIA;HAIKU")
14051432
list_replace(SWIFTLIB_TARGET_SDKS ALL_APPLE_PLATFORMS "${SWIFT_APPLE_PLATFORMS}")
14061433

14071434
# All Swift code depends on the standard library, except for the standard
@@ -1513,6 +1540,9 @@ function(add_swift_library name)
15131540
elseif("${sdk}" STREQUAL "CYGWIN")
15141541
list(APPEND swiftlib_module_depends_flattened
15151542
${SWIFTLIB_SWIFT_MODULE_DEPENDS_CYGWIN})
1543+
elseif("${sdk}" STREQUAL "FUCHSIA")
1544+
list(APPEND swiftlib_module_depends_flattened
1545+
${SWIFTLIB_SWIFT_MODULE_DEPENDS_FUCHSIA})
15161546
elseif("${sdk}" STREQUAL "HAIKU")
15171547
list(APPEND swiftlib_module_depends_flattened
15181548
${SWIFTLIB_SWIFT_MODULE_DEPENDS_HAIKU})
@@ -2030,8 +2060,7 @@ function(_add_swift_executable_single name)
20302060

20312061
add_dependencies_multiple_targets(
20322062
TARGETS "${name}"
2033-
DEPENDS
2034-
${dependency_target}
2063+
DEPENDS ${dependency_target}
20352064
${LLVM_COMMON_DEPENDS}
20362065
${SWIFTEXE_SINGLE_DEPENDS}
20372066
${SWIFTEXE_SINGLE_LINK_FAT_LIBRARIES_TARGETS})

cmake/modules/SwiftConfigureSDK.cmake

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,37 @@ macro(configure_sdk_unix
167167
_report_sdk("${prefix}")
168168
endmacro()
169169

170+
macro(configure_sdk_fuchsia
171+
prefix name lib_subdir triple_name architectures)
172+
# Note: this has to be implemented as a macro because it sets global
173+
# variables.
174+
175+
set(SWIFT_SDK_${prefix}_NAME "${name}")
176+
# SDK PATHs are configured by caller
177+
set(SWIFT_SDK_${prefix}_VERSION "don't use")
178+
set(SWIFT_SDK_${prefix}_BUILD_NUMBER "don't use")
179+
set(SWIFT_SDK_${prefix}_DEPLOYMENT_VERSION "don't use")
180+
set(SWIFT_SDK_${prefix}_LIB_SUBDIR "${lib_subdir}")
181+
set(SWIFT_SDK_${prefix}_VERSION_MIN_NAME "")
182+
set(SWIFT_SDK_${prefix}_TRIPLE_NAME "${triple_name}")
183+
set(SWIFT_SDK_${prefix}_ARCHITECTURES "${architectures}")
184+
if("${prefix}" STREQUAL "CYGWIN")
185+
set(SWIFT_SDK_${prefix}_OBJECT_FORMAT "COFF")
186+
else()
187+
set(SWIFT_SDK_${prefix}_OBJECT_FORMAT "ELF")
188+
endif()
189+
190+
foreach(arch ${architectures})
191+
set(SWIFT_SDK_${prefix}_ARCH_${arch}_TRIPLE "${arch}-unknown-fuchsia")
192+
set(SWIFT_SDK_${prefix}_ARCH_${arch}_LINKER "${SWIFT_FUCHSIA_TOOLCHAIN_PATH}/bin/ld.lld")
193+
endforeach()
194+
195+
# Add this to the list of known SDKs.
196+
list(APPEND SWIFT_CONFIGURED_SDKS "${prefix}")
197+
198+
_report_sdk("${prefix}")
199+
endmacro()
200+
170201
macro(configure_sdk_windows prefix sdk_name environment architectures)
171202
# Note: this has to be implemented as a macro because it sets global
172203
# variables.

include/swift/Basic/LangOptions.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,8 @@ namespace swift {
276276
Target.getOSVersion(major, minor, revision);
277277
} else if (Target.isOSLinux() || Target.isOSFreeBSD() ||
278278
Target.isAndroid() || Target.isOSWindows() ||
279-
Target.isPS4() || Target.isOSHaiku() ||
280-
Target.getTriple().empty()) {
279+
Target.isPS4() || Target.isOSFuchsia() ||
280+
Target.isOSHaiku() || Target.getTriple().empty()) {
281281
major = minor = revision = 0;
282282
} else {
283283
llvm_unreachable("Unsupported target OS");

include/swift/Runtime/Concurrent.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <atomic>
1616
#include <functional>
1717
#include <stdint.h>
18+
#include <cstdio>
1819
#include "llvm/Support/Allocator.h"
1920

2021
#if defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__HAIKU__)

include/swift/Runtime/Mutex.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
#include <type_traits>
2222

23-
#if (defined(__APPLE__) || defined(__linux__) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__HAIKU__))
23+
#if (defined(__APPLE__) || defined(__linux__) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__Fuchsia__) || defined(__HAIKU__))
2424
#include "swift/Runtime/MutexPThread.h"
2525
#elif defined(_WIN32)
2626
#include "swift/Runtime/MutexWin32.h"

lib/Basic/LangOptions.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ static const StringRef SupportedConditionalCompilationOSs[] = {
3838
"Android",
3939
"PS4",
4040
"Cygwin",
41+
"Fuchsia",
4142
"Haiku",
4243
};
4344

@@ -190,6 +191,8 @@ std::pair<bool, bool> LangOptions::setTarget(llvm::Triple triple) {
190191
addPlatformConditionValue(PlatformConditionKind::OS, "Cygwin");
191192
else if (triple.isPS4())
192193
addPlatformConditionValue(PlatformConditionKind::OS, "PS4");
194+
else if (triple.isOSFuchsia())
195+
addPlatformConditionValue(PlatformConditionKind::OS, "Fuchsia");
193196
else if (triple.isOSHaiku())
194197
addPlatformConditionValue(PlatformConditionKind::OS, "Haiku");
195198
else

lib/Basic/Platform.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ StringRef swift::getPlatformNameForTriple(const llvm::Triple &triple) {
103103
case llvm::Triple::Ananas:
104104
case llvm::Triple::CloudABI:
105105
case llvm::Triple::DragonFly:
106-
case llvm::Triple::Fuchsia:
107106
case llvm::Triple::KFreeBSD:
108107
case llvm::Triple::Lv2:
109108
case llvm::Triple::NetBSD:
@@ -146,6 +145,8 @@ StringRef swift::getPlatformNameForTriple(const llvm::Triple &triple) {
146145
}
147146
case llvm::Triple::PS4:
148147
return "ps4";
148+
case llvm::Triple::Fuchsia:
149+
return "fuchsia";
149150
case llvm::Triple::Haiku:
150151
return "haiku";
151152
}

lib/Driver/Driver.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,9 @@ makeToolChain(Driver &driver, const llvm::Triple &target) {
224224
case llvm::Triple::Win32:
225225
return llvm::make_unique<toolchains::Cygwin>(driver, target);
226226
break;
227+
case llvm::Triple::Fuchsia:
228+
return llvm::make_unique<toolchains::Fuchsia>(driver, target);
229+
break;
227230
case llvm::Triple::Haiku:
228231
return llvm::make_unique<toolchains::GenericUnix>(driver, target);
229232
break;

lib/Driver/ToolChains.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1773,6 +1773,14 @@ bool toolchains::Android::shouldProvideRPathToLinker() const {
17731773
return false;
17741774
}
17751775

1776+
std::string toolchains::Fuchsia::getDefaultLinker() const {
1777+
return "lld";
1778+
}
1779+
1780+
bool toolchains::Fuchsia::shouldProvideRPathToLinker() const {
1781+
return false;
1782+
}
1783+
17761784
std::string toolchains::Cygwin::getDefaultLinker() const {
17771785
// Cygwin uses the default BFD linker, even on ARM.
17781786
return "";

lib/Driver/ToolChains.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,16 @@ class LLVM_LIBRARY_VISIBILITY Android : public GenericUnix {
8787
~Android() = default;
8888
};
8989

90+
class LLVM_LIBRARY_VISIBILITY Fuchsia : public GenericUnix {
91+
protected:
92+
std::string getDefaultLinker() const override;
93+
94+
bool shouldProvideRPathToLinker() const override;
95+
public:
96+
Fuchsia(const Driver &D, const llvm::Triple &Triple) : GenericUnix(D, Triple) {}
97+
~Fuchsia() = default;
98+
};
99+
90100
class LLVM_LIBRARY_VISIBILITY Cygwin : public GenericUnix {
91101
protected:
92102
std::string getDefaultLinker() const override;

stdlib/private/StdlibUnittest/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ add_swift_library(swiftStdlibUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STD
4141
SWIFT_MODULE_DEPENDS_LINUX Glibc
4242
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
4343
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
44+
SWIFT_MODULE_DEPENDS_FUCHSIA Glibc
4445
SWIFT_MODULE_DEPENDS_HAIKU Glibc
4546
SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags}
4647
TARGET_SDKS ALL_POSIX_PLATFORMS

stdlib/private/StdlibUnittest/RaceTest.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import SwiftPrivateLibcExtras
4141
import SwiftPrivatePthreadExtras
4242
#if os(OSX) || os(iOS)
4343
import Darwin
44-
#elseif os(Linux) || os(FreeBSD) || os(PS4) || os(Android) || os(Cygwin) || os(Haiku)
44+
#elseif os(Linux) || os(FreeBSD) || os(PS4) || os(Android) || os(Cygwin) || os(Fuchsia) || os(Haiku)
4545
import Glibc
4646
#endif
4747

stdlib/private/StdlibUnittest/StdlibCoreExtras.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import SwiftPrivate
1414
import SwiftPrivateLibcExtras
1515
#if os(OSX) || os(iOS)
1616
import Darwin
17-
#elseif os(Linux) || os(FreeBSD) || os(PS4) || os(Android) || os(Cygwin) || os(Haiku)
17+
#elseif os(Linux) || os(FreeBSD) || os(PS4) || os(Android) || os(Cygwin) || os(Fuchsia) || os(Haiku)
1818
import Glibc
1919
#endif
2020

0 commit comments

Comments
 (0)