From f9a19aec6c2682feaf2a89d09cf5152704b0b78c Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 4 Sep 2021 07:45:29 +0000 Subject: [PATCH 1/2] StdlibUnittest: import _Concurrency explicitly StdlibUnittest is built with -disable-implicit-concurrency-module-import and it uses concurrency feature. Therefore, without explicit import, StdlibUnittest.swiftmodule doesn't have IMPORTED_MODULE entry of _Concurrency. And it results link-failure when static linking because swift_Concurrency is not linked. --- stdlib/private/StdlibUnittest/StdlibUnittest.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stdlib/private/StdlibUnittest/StdlibUnittest.swift b/stdlib/private/StdlibUnittest/StdlibUnittest.swift index 0abed4e229e9d..5089ed16db4aa 100644 --- a/stdlib/private/StdlibUnittest/StdlibUnittest.swift +++ b/stdlib/private/StdlibUnittest/StdlibUnittest.swift @@ -35,6 +35,10 @@ import WinSDK import ObjectiveC #endif +#if SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY +import _Concurrency +#endif + #if os(WASI) let platformSupportSpawnChild = false #else From c1e408364e1c17c94bb7690322a8cf5f95e4dfe5 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 4 Sep 2021 08:00:49 +0000 Subject: [PATCH 2/2] Revert "Workaround for broken implicit import auto static linking" This reverts commit fde4ec9d2ca2dd3bb41d41987d131d1e70696a6e. --- test/lit.cfg | 7 ------- 1 file changed, 7 deletions(-) diff --git a/test/lit.cfg b/test/lit.cfg index 7d705fb869337..de55ce9ae51a5 100644 --- a/test/lit.cfg +++ b/test/lit.cfg @@ -1581,13 +1581,6 @@ elif run_os == 'wasi': '-target', config.variant_triple, '-Xcc', '--sysroot=%s' % config.variant_sdk, '-Xclang-linker', '--sysroot=%s' % config.variant_sdk, - # workaroud: Even though StdlibUnittest uses _Concurrency, - # _Concurrency module won't be listed in IMPORTED_MODULE. - # And -parse-stdlib disables implicit imports, so autolink - # system is broken when static link & -parse-stdlib & importing _Concurrency. - # This issue causes link failure that reports there are missing swift_task_XX - # symbols. - '-lswift_Concurrency', '-toolchain-stdlib-rpath', config.resource_dir_opt, mcp_opt, config.swift_test_options, config.swift_driver_test_options, swift_execution_tests_extra_flags])