Skip to content

Commit 7d1e9a7

Browse files
committed
Fix -DSWIFT_PATH_TO_LIBDISPATCH_STATIC_BUILD value
1 parent 9d82c51 commit 7d1e9a7

File tree

4 files changed

+11
-14
lines changed

4 files changed

+11
-14
lines changed

test/Driver/static-stdlib-autolink-linux.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
// RUN: echo 'public func asyncFunc() async { print("Hello") }' > %t/asyncModule.swift
88

99
// RUN: %target-swiftc_driver -emit-library -emit-module -module-name asyncModule -module-link-name asyncModule %t/asyncModule.swift -static -static-stdlib -o %t/libasyncModule.a
10-
// TODO: "-ldispatch -lBlocksRuntime" should be told by asyncModule.swiftmodule transitively
11-
// RUN: %target-swiftc_driver -parse-as-library -static -static-stdlib -module-name main %s %import-static-libdispatch -I%t -L%t -ldispatch -lBlocksRuntime -o %t/main
10+
// RUN: %target-swiftc_driver -parse-as-library -static -static-stdlib -module-name main %s %import-static-libdispatch -I%t -L%t -o %t/main
1211

1312
// RUN: %t/main | %FileCheck %s
1413
// CHECK: Hello

test/Driver/static-stdlib-linux.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// REQUIRES: static_stdlib
44
print("hello world!")
55
// RUN: %empty-directory(%t)
6-
// RUN: %target-swiftc_driver -static-stdlib -o %t/static-stdlib %s
6+
// RUN: %target-swiftc_driver %import-static-libdispatch -static-stdlib -o %t/static-stdlib %s
77
// RUN: %t/static-stdlib | %FileCheck %s
88
// RUN: ldd %t/static-stdlib | %FileCheck %s --check-prefix=LDD
99
// CHECK: hello world!

test/lit.cfg

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1591,19 +1591,13 @@ elif (run_os in ['linux-gnu', 'linux-gnueabihf', 'freebsd', 'openbsd', 'windows-
15911591
config.import_libdispatch = ('-I %s -I %s -L %s'
15921592
% (libdispatch_source_dir, libdispatch_swift_module_dir, libdispatch_artifact_dir))
15931593

1594-
libdispatch_static_artifact_dir = config.libdispatch_static_build_path
1595-
libdispatch_swift_static_module_dir = make_path(libdispatch_static_artifact_dir, 'src', 'swift', 'swift')
1594+
libdispatch_static_artifact_dir = os.path.join(config.libdispatch_static_build_path, 'lib')
15961595
libdispatch_static_artifacts = [
1597-
make_path(libdispatch_static_artifact_dir, 'src', 'libdispatch.a'),
1598-
make_path(libdispatch_static_artifact_dir, 'src', 'swift', 'libswiftDispatch.a'),
1599-
make_path(libdispatch_swift_static_module_dir, 'Dispatch.swiftmodule')]
1596+
make_path(libdispatch_static_artifact_dir, 'libdispatch.a'),
1597+
make_path(libdispatch_static_artifact_dir, 'libBlocksRuntime.a')]
16001598
if (all(os.path.exists(p) for p in libdispatch_static_artifacts)):
16011599
config.available_features.add('libdispatch_static')
1602-
config.import_libdispatch_static = ('-I %s -I %s -L %s -L %s -L %s'
1603-
% (libdispatch_source_dir, libdispatch_swift_static_module_dir,
1604-
make_path(libdispatch_static_artifact_dir, 'src'),
1605-
make_path(libdispatch_static_artifact_dir, 'src', 'BlocksRuntime'),
1606-
make_path(libdispatch_static_artifact_dir, 'src', 'swift')))
1600+
config.import_libdispatch_static = '-L %s' % libdispatch_static_artifact_dir
16071601

16081602
config.target_build_swift = (
16091603
'%s -target %s -toolchain-stdlib-rpath %s %s %s %s %s'
@@ -2644,6 +2638,10 @@ run_filecheck = '%s %s --allow-unused-prefixes --sanitize BUILD_DIR=%s --sanitiz
26442638
config.substitutions.append(('%FileCheck', run_filecheck))
26452639
config.substitutions.append(('%raw-FileCheck', shell_quote(config.filecheck)))
26462640
config.substitutions.append(('%import-libdispatch', getattr(config, 'import_libdispatch', '')))
2641+
# WARNING: the order of components in a substitution name has to be different from the previous one, as lit does
2642+
# a pure string substitution without understanding that these components are grouped together. That is, the following
2643+
# subsitution name can't be `%import-libdispatch-static`, otherwise the first two components will be substituted with
2644+
# the value of `%import-libdispatch` substitution with `-static` string appended to it.
26472645
config.substitutions.append(('%import-static-libdispatch', getattr(config, 'import_libdispatch_static', '')))
26482646

26492647
# Disable COW sanity checks in the swift runtime by default.

utils/build-script-impl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1901,7 +1901,7 @@ for host in "${ALL_HOSTS[@]}"; do
19011901
-DSWIFT_PATH_TO_CMARK_BUILD:PATH="$(build_directory ${host} cmark)"
19021902
-DSWIFT_PATH_TO_LIBDISPATCH_SOURCE:PATH="${LIBDISPATCH_SOURCE_DIR}"
19031903
-DSWIFT_PATH_TO_LIBDISPATCH_BUILD:PATH="$(build_directory ${host} libdispatch)"
1904-
-DSWIFT_PATH_TO_LIBDISPATCH_STATIC_BUILD:PATH="$(build_directory ${host} libdispatch_static)"
1904+
-DSWIFT_PATH_TO_LIBDISPATCH_STATIC_BUILD:PATH="$(build_directory ${host} swift)/$(basename $(build_directory ${host} libdispatch))-static-prefix"
19051905
)
19061906

19071907
if [[ "${SWIFT_SDKS}" ]] ; then

0 commit comments

Comments
 (0)