Skip to content

Commit 119f295

Browse files
committed
[Unix] Move all ELF SDK runtime libraries into their own architecture-specific directories
This is needed for all platforms that don't have multi-architecture libraries like Darwin. Resolves #63645
1 parent 815e8cc commit 119f295

14 files changed

+70
-50
lines changed

cmake/modules/AddSwift.cmake

+3-3
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ function(_add_swift_runtime_link_flags target relpath_to_lib_dir bootstrapping)
534534
# installed host toolchain.
535535
get_filename_component(swift_bin_dir ${SWIFT_EXEC_FOR_SWIFT_MODULES} DIRECTORY)
536536
get_filename_component(swift_dir ${swift_bin_dir} DIRECTORY)
537-
set(host_lib_dir "${swift_dir}/lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
537+
set(host_lib_dir "${swift_dir}/lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH}")
538538

539539
target_link_libraries(${target} PRIVATE ${swiftrt})
540540
target_link_libraries(${target} PRIVATE "swiftCore")
@@ -543,7 +543,7 @@ function(_add_swift_runtime_link_flags target relpath_to_lib_dir bootstrapping)
543543
if(ASRLF_BOOTSTRAPPING_MODE STREQUAL "HOSTTOOLS")
544544
set(swift_runtime_rpath "${host_lib_dir}")
545545
else()
546-
set(swift_runtime_rpath "$ORIGIN/${relpath_to_lib_dir}/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
546+
set(swift_runtime_rpath "$ORIGIN/${relpath_to_lib_dir}/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH}")
547547
endif()
548548

549549
elseif(ASRLF_BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING")
@@ -558,7 +558,7 @@ function(_add_swift_runtime_link_flags target relpath_to_lib_dir bootstrapping)
558558

559559
# At runtime link against the built swift libraries from the current
560560
# bootstrapping stage.
561-
set(swift_runtime_rpath "$ORIGIN/${relpath_to_lib_dir}/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
561+
set(swift_runtime_rpath "$ORIGIN/${relpath_to_lib_dir}/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH}")
562562

563563
elseif(ASRLF_BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING-WITH-HOSTLIBS")
564564
message(FATAL_ERROR "BOOTSTRAPPING_MODE 'BOOTSTRAPPING-WITH-HOSTLIBS' not supported on Linux")

cmake/modules/Libdispatch.cmake

-8
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,6 @@ foreach(sdk ${DISPATCH_SDKS})
125125
${CMAKE_COMMAND} -E copy
126126
<INSTALL_DIR>/${LIBDISPATCH_RUNTIME_DIR}/${SWIFT_SDK_${sdk}_SHARED_LIBRARY_PREFIX}BlocksRuntime${SWIFT_SDK_${sdk}_SHARED_LIBRARY_SUFFIX}
127127
${SWIFTLIB_DIR}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}/${SWIFT_SDK_${sdk}_SHARED_LIBRARY_PREFIX}BlocksRuntime${SWIFT_SDK_${sdk}_SHARED_LIBRARY_SUFFIX}
128-
COMMAND
129-
${CMAKE_COMMAND} -E copy
130-
<INSTALL_DIR>/${LIBDISPATCH_RUNTIME_DIR}/${SWIFT_SDK_${sdk}_SHARED_LIBRARY_PREFIX}dispatch${SWIFT_SDK_${sdk}_SHARED_LIBRARY_SUFFIX}
131-
${SWIFTLIB_DIR}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${SWIFT_SDK_${sdk}_SHARED_LIBRARY_PREFIX}dispatch${SWIFT_SDK_${sdk}_SHARED_LIBRARY_SUFFIX}
132-
COMMAND
133-
${CMAKE_COMMAND} -E copy
134-
<INSTALL_DIR>/${LIBDISPATCH_RUNTIME_DIR}/${SWIFT_SDK_${sdk}_SHARED_LIBRARY_PREFIX}BlocksRuntime${SWIFT_SDK_${sdk}_SHARED_LIBRARY_SUFFIX}
135-
${SWIFTLIB_DIR}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${SWIFT_SDK_${sdk}_SHARED_LIBRARY_PREFIX}BlocksRuntime${SWIFT_SDK_${sdk}_SHARED_LIBRARY_SUFFIX}
136128
STEP_TARGETS
137129
install
138130
BUILD_BYPRODUCTS

cmake/modules/SwiftUtils.cmake

+7-2
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,13 @@ endfunction()
9797
function(get_bootstrapping_swift_lib_dir bs_lib_dir bootstrapping)
9898
set(bs_lib_dir "")
9999
if(BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING")
100-
set(lib_dir
101-
"${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
100+
if(${SWIFT_HOST_VARIANT_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS)
101+
set(lib_dir
102+
"${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
103+
else()
104+
set(lib_dir
105+
"${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH}")
106+
endif()
102107
# If building the stdlib with bootstrapping, the compiler has to pick up
103108
# the swift libraries of the previous bootstrapping level (because in the
104109
# current lib-directory they are not built yet.

docs/Android.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,13 @@ listed when you run the `adb devices` command - **currently this example works o
121121
commands to copy the Swift Android stdlib:
122122

123123
```
124-
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftCore.so /data/local/tmp
125-
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftGlibc.so /data/local/tmp
126-
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftSwiftOnoneSupport.so /data/local/tmp
127-
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftRemoteMirror.so /data/local/tmp
128-
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswift_Concurrency.so /data/local/tmp
129-
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libdispatch.so /data/local/tmp
130-
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libBlocksRuntime.so /data/local/tmp
124+
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/aarch64/libswiftCore.so /data/local/tmp
125+
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/aarch64/libswiftGlibc.so /data/local/tmp
126+
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/aarch64/libswiftSwiftOnoneSupport.so /data/local/tmp
127+
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/aarch64/libswiftRemoteMirror.so /data/local/tmp
128+
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/aarch64/libswift_Concurrency.so /data/local/tmp
129+
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/aarch64/libdispatch.so /data/local/tmp
130+
$ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/aarch64/libBlocksRuntime.so /data/local/tmp
131131
```
132132

133133
In addition, you'll also need to copy the Android NDK's libc++:

lib/Driver/ToolChains.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -1451,6 +1451,11 @@ void ToolChain::getRuntimeLibraryPaths(SmallVectorImpl<std::string> &runtimeLibP
14511451
StringRef SDKPath, bool shared) const {
14521452
SmallString<128> scratchPath;
14531453
getResourceDirPath(scratchPath, args, shared);
1454+
// Since only Darwin doesn't have separate libraries per architecture, link
1455+
// against the architecture-specific version of the library everywhere else.
1456+
if (!getTriple().isOSDarwin())
1457+
llvm::sys::path::append(scratchPath,
1458+
swift::getMajorArchitectureName(getTriple()));
14541459
runtimeLibPaths.push_back(std::string(scratchPath.str()));
14551460

14561461
// If there's a secondary resource dir, add it too.

lib/Driver/WindowsToolChains.cpp

+1-4
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,7 @@ toolchains::Windows::constructInvocation(const DynamicLinkJobAction &job,
118118

119119
for (auto path : RuntimeLibPaths) {
120120
Arguments.push_back("-L");
121-
// Since Windows has separate libraries per architecture, link against the
122-
// architecture specific version of the static library.
123-
Arguments.push_back(context.Args.MakeArgString(path + "/" +
124-
getTriple().getArchName()));
121+
Arguments.push_back(context.Args.MakeArgString(path));
125122
}
126123

127124
SmallString<128> SharedResourceDirPath;

lib/Frontend/CompilerInvocation.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,11 @@ static void updateRuntimeLibraryPaths(SearchPathOptions &SearchPathOpts,
168168
LibSubDir = "maccatalyst";
169169

170170
llvm::sys::path::append(LibPath, LibSubDir);
171+
llvm::SmallString<128> runtimeLibPath = LibPath;
172+
if (!Triple.isOSDarwin())
173+
llvm::sys::path::append(runtimeLibPath, swift::getMajorArchitectureName(Triple));
171174
SearchPathOpts.RuntimeLibraryPaths.clear();
172-
SearchPathOpts.RuntimeLibraryPaths.push_back(std::string(LibPath.str()));
175+
SearchPathOpts.RuntimeLibraryPaths.push_back(std::string(runtimeLibPath.str()));
173176
if (Triple.isOSDarwin())
174177
SearchPathOpts.RuntimeLibraryPaths.push_back(DARWIN_OS_LIBRARY_PATH);
175178

stdlib/cmake/modules/AddSwiftStdlib.cmake

+26-11
Original file line numberDiff line numberDiff line change
@@ -799,11 +799,11 @@ function(add_swift_target_library_single target name)
799799
"${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
800800
endif()
801801

802-
if ("${SWIFTLIB_SINGLE_BOOTSTRAPPING}" STREQUAL "")
802+
if ("${SWIFTLIB_SINGLE_BOOTSTRAPPING}" STREQUAL "" OR NOT SWIFTLIB_SINGLE_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
803803
set(output_sub_dir ${SWIFTLIB_SINGLE_SUBDIR})
804804
else()
805805
# In the bootstrapping builds, we only have the single host architecture.
806-
# So generated the library directly in the parent SDK specific directory
806+
# So generate the Darwin library directly in the parent SDK specific directory
807807
# (avoiding to lipo/copy the library).
808808
set(output_sub_dir ${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR})
809809
endif()
@@ -1253,11 +1253,12 @@ function(add_swift_target_library_single target name)
12531253
${SWIFTLIB_SINGLE_C_COMPILE_FLAGS} "-DSWIFT_TARGET_LIBRARY_NAME=${name}")
12541254
set(link_flags ${SWIFTLIB_SINGLE_LINK_FLAGS})
12551255

1256-
set(library_search_subdir "${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
12571256
set(library_search_directories
12581257
"${lib_dir}/${output_sub_dir}"
1259-
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFTLIB_SINGLE_SUBDIR}"
1260-
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
1258+
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFTLIB_SINGLE_SUBDIR}")
1259+
if("${SWIFTLIB_SINGLE_SDK}" IN_LIST SWIFT_DARWIN_PLATFORMS)
1260+
list(APPEND library_search_directories "${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
1261+
endif()
12611262

12621263
# In certain cases when building, the environment variable SDKROOT is set to override
12631264
# where the sdk root is located in the system. If that environment variable has been
@@ -1483,8 +1484,10 @@ function(add_swift_target_library_single target name)
14831484
endif()
14841485
set(library_search_directories
14851486
"${search_base_dir}/${SWIFTLIB_SINGLE_SUBDIR}"
1486-
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFTLIB_SINGLE_SUBDIR}"
1487-
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
1487+
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFTLIB_SINGLE_SUBDIR}")
1488+
if("${SWIFTLIB_SINGLE_SDK}" IN_LIST SWIFT_DARWIN_PLATFORMS)
1489+
list(APPEND library_search_directories "${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
1490+
endif()
14881491
target_link_directories(${target_static} PRIVATE
14891492
${library_search_directories})
14901493
target_link_libraries("${target_static}" PRIVATE
@@ -2373,8 +2376,10 @@ function(add_swift_target_library name)
23732376
if (SWIFTLIB_BACK_DEPLOYMENT_LIBRARY)
23742377
# Back-deployment libraries get installed into a versioned directory.
23752378
set(install_dest "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}-${SWIFTLIB_BACK_DEPLOYMENT_LIBRARY}/${resource_dir_sdk_subdir}")
2376-
else()
2379+
elseif(sdk STREQUAL WINDOWS OR sdk IN_LIST SWIFT_DARWIN_PLATFORMS)
23772380
set(install_dest "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}")
2381+
else()
2382+
set(install_dest "lib${LLVM_LIBDIR_SUFFIX}/${resource_dir}/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}")
23782383
endif()
23792384

23802385
swift_install_in_component(FILES "${UNIVERSAL_LIBRARY_NAME}"
@@ -2450,6 +2455,11 @@ function(add_swift_target_library name)
24502455
"${name}-${library_subdir}-static")
24512456
set(UNIVERSAL_LIBRARY_NAME
24522457
"${universal_subdir}/${library_subdir}/${CMAKE_STATIC_LIBRARY_PREFIX}${name}${CMAKE_STATIC_LIBRARY_SUFFIX}")
2458+
if(sdk STREQUAL WINDOWS OR sdk IN_LIST SWIFT_DARWIN_PLATFORMS)
2459+
set(install_dest "lib${LLVM_LIBDIR_SUFFIX}/${install_subdir}/${resource_dir_sdk_subdir}")
2460+
else()
2461+
set(install_dest "lib${LLVM_LIBDIR_SUFFIX}/${install_subdir}/${resource_dir_sdk_subdir}/${SWIFT_PRIMARY_VARIANT_ARCH}")
2462+
endif()
24532463
_add_swift_lipo_target(SDK
24542464
${sdk}
24552465
TARGET
@@ -2459,7 +2469,7 @@ function(add_swift_target_library name)
24592469
${THIN_INPUT_TARGETS_STATIC})
24602470
add_dependencies(${SWIFTLIB_INSTALL_IN_COMPONENT} ${lipo_target_static})
24612471
swift_install_in_component(FILES "${UNIVERSAL_LIBRARY_NAME}"
2462-
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${install_subdir}/${resource_dir_sdk_subdir}"
2472+
DESTINATION "${install_dest}"
24632473
PERMISSIONS
24642474
OWNER_READ OWNER_WRITE
24652475
GROUP_READ
@@ -2531,8 +2541,13 @@ function(_add_swift_target_executable_single name)
25312541
set(link_flags)
25322542

25332543
# Prepare linker search directories.
2534-
set(library_search_directories
2535-
"${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK}_LIB_SUBDIR}")
2544+
if(${SWIFTEXE_SINGLE_SDK} IN_LIST SWIFT_DARWIN_PLATFORMS OR ${SWIFTEXE_SINGLE_SDK} STREQUAL WINDOWS)
2545+
set(library_search_directories
2546+
"${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK}_LIB_SUBDIR}")
2547+
else()
2548+
set(library_search_directories
2549+
"${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFTEXE_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTEXE_SINGLE_ARCHITECTURE}")
2550+
endif()
25362551

25372552
# Add variant-specific flags.
25382553
_add_target_variant_c_compile_flags(

test/Driver/environment.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44

55
// RUN: %swift_driver_plain -sdk "" -target x86_64-unknown-gnu-linux -L/foo/ -driver-use-frontend-path %S/Inputs/print-var.sh %s LD_LIBRARY_PATH | %FileCheck -check-prefix=CHECK${LD_LIBRARY_PATH+_LAX} %s
66

7-
// CHECK: {{^/foo/:[^:]+/lib/swift/linux$}}
8-
// CHECK_LAX: {{^/foo/:[^:]+/lib/swift/linux}}
7+
// CHECK: {{^/foo/:[^:]+/lib/swift/linux/x86_64$}}
8+
// CHECK_LAX: {{^/foo/:[^:]+/lib/swift/linux/x86_64}}

test/Driver/options-interpreter.swift

+6-6
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
// CHECK-RESOURCE-DIR-ONLY: # DYLD_LIBRARY_PATH=/RSRC/macosx{{$}}
1919

2020
// RUN: %swift_driver_plain -sdk "" -### -target x86_64-unknown-linux-gnu -resource-dir /RSRC/ %s | %FileCheck -check-prefix=CHECK-RESOURCE-DIR-ONLY-LINUX${LD_LIBRARY_PATH+_LAX} %s
21-
// CHECK-RESOURCE-DIR-ONLY-LINUX: # LD_LIBRARY_PATH=/RSRC/linux{{$}}
22-
// CHECK-RESOURCE-DIR-ONLY-LINUX_LAX: # LD_LIBRARY_PATH=/RSRC/linux{{$|:}}
21+
// CHECK-RESOURCE-DIR-ONLY-LINUX: # LD_LIBRARY_PATH=/RSRC/linux/x86_64{{$}}
22+
// CHECK-RESOURCE-DIR-ONLY-LINUX_LAX: # LD_LIBRARY_PATH=/RSRC/linux/x86_64{{$|:}}
2323

2424
// RUN: %swift_driver_plain -sdk "" -### -target x86_64-apple-macosx10.9 -L/foo/ %s | %FileCheck -check-prefix=CHECK-L %s
2525
// CHECK-L: # DYLD_LIBRARY_PATH={{/foo/:[^:]+/lib/swift/macosx$}}
@@ -61,9 +61,9 @@
6161
// CHECK-COMPLEX-DAG: DYLD_LIBRARY_PATH={{/foo2/:/bar2/:[^:]+/lib/swift/macosx:/sdkroot/usr/lib/swift($| )}}
6262

6363
// RUN: %swift_driver_plain -sdk "" -### -target x86_64-unknown-linux-gnu -L/foo/ %s | %FileCheck -check-prefix=CHECK-L-LINUX${LD_LIBRARY_PATH+_LAX} %s
64-
// CHECK-L-LINUX: # LD_LIBRARY_PATH={{/foo/:[^:]+/lib/swift/linux$}}
65-
// CHECK-L-LINUX_LAX: # LD_LIBRARY_PATH={{/foo/:[^:]+/lib/swift/linux($|:)}}
64+
// CHECK-L-LINUX: # LD_LIBRARY_PATH={{/foo/:[^:]+/lib/swift/linux/x86_64$}}
65+
// CHECK-L-LINUX_LAX: # LD_LIBRARY_PATH={{/foo/:[^:]+/lib/swift/linux/x86_64($|:)}}
6666

6767
// RUN: env LD_LIBRARY_PATH=/abc/ %swift_driver_plain -### -target x86_64-unknown-linux-gnu -L/foo/ -L/bar/ %s | %FileCheck -check-prefix=CHECK-LINUX-COMPLEX${LD_LIBRARY_PATH+_LAX} %s
68-
// CHECK-LINUX-COMPLEX: # LD_LIBRARY_PATH={{/foo/:/bar/:[^:]+/lib/swift/linux:/abc/$}}
69-
// CHECK-LINUX-COMPLEX_LAX: # LD_LIBRARY_PATH={{/foo/:/bar/:[^:]+/lib/swift/linux:/abc/($|:)}}
68+
// CHECK-LINUX-COMPLEX: # LD_LIBRARY_PATH={{/foo/:/bar/:[^:]+/lib/swift/linux/x86_64:/abc/$}}
69+
// CHECK-LINUX-COMPLEX_LAX: # LD_LIBRARY_PATH={{/foo/:/bar/:[^:]+/lib/swift/linux/x86_64:/abc/($|:)}}

test/Reflection/conformance_descriptors.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// RUN: %empty-directory(%t)
1010

1111
// RUN: %target-build-swift %S/Inputs/ConcreteTypes.swift %S/Inputs/GenericTypes.swift %S/Inputs/Protocols.swift %S/Inputs/Extensions.swift %S/Inputs/Closures.swift %S/Inputs/Conformances.swift -parse-as-library -emit-module -emit-library -module-name ConformanceCheck -o %t/Conformances
12-
// RUN: %target-swift-reflection-dump %t/Conformances %platform-module-dir/%target-library-name(swiftCore) | %FileCheck %s
12+
// RUN: %target-swift-reflection-dump %t/Conformances %platform-dylib-dir/%target-library-name(swiftCore) | %FileCheck %s
1313

1414
// CHECK: CONFORMANCES:
1515
// CHECK: =============

test/Reflection/typeref_lowering.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
// RUN: %target-build-swift -Xfrontend -disable-availability-checking %S/Inputs/TypeLowering.swift -parse-as-library -emit-module -emit-library -module-name TypeLowering -o %t/%target-library-name(TypesToReflect)
99
// RUN: %target-build-swift -Xfrontend -disable-availability-checking %S/Inputs/TypeLowering.swift %S/Inputs/main.swift -emit-module -emit-executable -module-name TypeLowering -o %t/TypesToReflect
1010

11-
// RUN: %target-swift-reflection-dump %t/%target-library-name(TypesToReflect) %platform-module-dir/%target-library-name(swiftCore) -dump-type-lowering < %s | %FileCheck %s --check-prefix=CHECK-%target-ptrsize
12-
// RUN: %target-swift-reflection-dump %t/TypesToReflect %platform-module-dir/%target-library-name(swiftCore) -dump-type-lowering < %s | %FileCheck %s --check-prefix=CHECK-%target-ptrsize
11+
// RUN: %target-swift-reflection-dump %t/%target-library-name(TypesToReflect) %platform-dylib-dir/%target-library-name(swiftCore) -dump-type-lowering < %s | %FileCheck %s --check-prefix=CHECK-%target-ptrsize
12+
// RUN: %target-swift-reflection-dump %t/TypesToReflect %platform-dylib-dir/%target-library-name(swiftCore) -dump-type-lowering < %s | %FileCheck %s --check-prefix=CHECK-%target-ptrsize
1313

1414
12TypeLowering11BasicStructV
1515
// CHECK-64: (struct TypeLowering.BasicStruct)

test/lit.cfg

+3
Original file line numberDiff line numberDiff line change
@@ -2047,6 +2047,9 @@ if platform.system() != 'Darwin':
20472047
platform_module_dir = make_path(test_resource_dir, config.target_sdk_name)
20482048

20492049
platform_dylib_dir = platform_module_dir
2050+
if platform.system() != 'Darwin':
2051+
platform_dylib_dir = make_path(test_resource_dir, relative_platform_module_dir_prefix)
2052+
20502053
if run_os == 'maccatalyst' and config.darwin_maccatalyst_build_flavor == "ios-like":
20512054
# When using the ios-macabi triple, look for module files
20522055
# in the 'maccatalyst' compiler resource directory.

tools/SourceKit/cmake/modules/AddSwiftSourceKit.cmake

+3-3
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ function(add_sourcekit_swift_runtime_link_flags target path HAS_SWIFT_MODULES)
123123
# installed host toolchain.
124124
get_filename_component(swift_bin_dir ${SWIFT_EXEC_FOR_SWIFT_MODULES} DIRECTORY)
125125
get_filename_component(swift_dir ${swift_bin_dir} DIRECTORY)
126-
set(host_lib_dir "${swift_dir}/lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
126+
set(host_lib_dir "${swift_dir}/lib/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH}")
127127

128128
target_link_libraries(${target} PRIVATE ${swiftrt})
129129
target_link_libraries(${target} PRIVATE "swiftCore")
@@ -132,7 +132,7 @@ function(add_sourcekit_swift_runtime_link_flags target path HAS_SWIFT_MODULES)
132132
if(ASKD_BOOTSTRAPPING_MODE STREQUAL "HOSTTOOLS")
133133
list(APPEND RPATH_LIST "${host_lib_dir}")
134134
else()
135-
file(RELATIVE_PATH relative_rtlib_path "${path}" "${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
135+
file(RELATIVE_PATH relative_rtlib_path "${path}" "${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH}")
136136
list(APPEND RPATH_LIST "$ORIGIN/${relative_rtlib_path}")
137137
endif()
138138

@@ -144,7 +144,7 @@ function(add_sourcekit_swift_runtime_link_flags target path HAS_SWIFT_MODULES)
144144

145145
# At runtime link against the built swift libraries from the current
146146
# bootstrapping stage.
147-
file(RELATIVE_PATH relative_rtlib_path "${path}" "${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
147+
file(RELATIVE_PATH relative_rtlib_path "${path}" "${SWIFTLIB_DIR}/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}/${SWIFT_HOST_VARIANT_ARCH}")
148148
list(APPEND RPATH_LIST "$ORIGIN/${relative_rtlib_path}")
149149

150150
elseif(ASKD_BOOTSTRAPPING_MODE STREQUAL "BOOTSTRAPPING-WITH-HOSTLIBS")

0 commit comments

Comments
 (0)