Skip to content

Commit 43feb9c

Browse files
authored
On Apple platforms, use swiftmodule directories for the stdlib (#21797)
This changes the Swift resource directory from looking like lib/ swift/ macosx/ libswiftCore.dylib libswiftDarwin.dylib x86_64/ Swift.swiftmodule Swift.swiftdoc Darwin.swiftmodule Darwin.swiftdoc to lib/ swift/ macosx/ libswiftCore.dylib libswiftDarwin.dylib Swift.swiftmodule/ x86_64.swiftmodule x86_64.swiftdoc Darwin.swiftmodule/ x86_64.swiftmodule x86_64.swiftdoc matching the layout we use for multi-architecture swiftmodules everywhere else (particularly frameworks). There's no change in this commit to how Linux swiftmodules are packaged. There's been past interest in going the /opposite/ direction for Linux, since there's not standard support for fat (multi-architecture) .so libraries. Moving the .so search path /down/ to an architecture-specific directory on Linux would allow the same resource directory to be used for both host-compiling and cross-compiling. rdar://problem/43545560
1 parent f879607 commit 43feb9c

33 files changed

+235
-118
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ endfunction()
3030
# Compute the library subdirectory to use for the given sdk and
3131
# architecture, placing the result in 'result_var_name'.
3232
function(compute_library_subdir result_var_name sdk arch)
33-
set("${result_var_name}" "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}" PARENT_SCOPE)
33+
if(sdk IN_LIST SWIFT_APPLE_PLATFORMS)
34+
set("${result_var_name}" "${SWIFT_SDK_${sdk}_LIB_SUBDIR}" PARENT_SCOPE)
35+
else()
36+
set("${result_var_name}" "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}" PARENT_SCOPE)
37+
endif()
3438
endfunction()
3539

3640
function(_compute_lto_flag option out_var)
@@ -1156,6 +1160,8 @@ function(_add_swift_library_single target name)
11561160
# Don't set PROPERTY COMPILE_FLAGS or LINK_FLAGS directly.
11571161
set(c_compile_flags ${SWIFTLIB_SINGLE_C_COMPILE_FLAGS})
11581162
set(link_flags ${SWIFTLIB_SINGLE_LINK_FLAGS})
1163+
1164+
set(library_search_subdir "${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
11591165
set(library_search_directories
11601166
"${SWIFTLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR}"
11611167
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFTLIB_SINGLE_SUBDIR}"
@@ -1300,6 +1306,7 @@ function(_add_swift_library_single target name)
13001306
if(target_static)
13011307
set_property(TARGET "${target_static}" APPEND_STRING PROPERTY
13021308
COMPILE_FLAGS " ${c_compile_flags}")
1309+
# FIXME: The fallback paths here are going to be dynamic libraries.
13031310
set(library_search_directories
13041311
"${SWIFTSTATICLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR}"
13051312
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFTLIB_SINGLE_SUBDIR}"

cmake/modules/SwiftSource.cmake

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,7 @@ function(handle_swift_sources
6161
endif()
6262

6363
if(swift_sources)
64-
compute_library_subdir(SWIFTSOURCES_LIBRARY_SUBDIR
65-
"${SWIFTSOURCES_SDK}" "${SWIFTSOURCES_ARCHITECTURE}")
66-
set(objsubdir "/${SWIFTSOURCES_LIBRARY_SUBDIR}")
64+
set(objsubdir "/${SWIFTSOURCES_SDK}/${SWIFTSOURCES_ARCHITECTURE}")
6765

6866
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}${objsubdir}")
6967

@@ -255,6 +253,8 @@ function(_compile_swift_files
255253
"-nostdimport" "-parse-stdlib" "-module-name" "Swift")
256254
list(APPEND swift_flags "-Xfrontend" "-group-info-path"
257255
"-Xfrontend" "${GROUP_INFO_JSON_FILE}")
256+
else()
257+
list(APPEND swift_flags "-module-name" "${SWIFTFILE_MODULE_NAME}")
258258
endif()
259259

260260
# Force swift 5 mode for Standard Library.
@@ -313,19 +313,32 @@ function(_compile_swift_files
313313
list(APPEND swift_flags "-parse-as-library")
314314

315315
set(module_base "${module_dir}/${SWIFTFILE_MODULE_NAME}")
316+
if(SWIFTFILE_SDK IN_LIST SWIFT_APPLE_PLATFORMS)
317+
set(specific_module_dir "${module_base}.swiftmodule")
318+
set(module_base "${module_base}.swiftmodule/${SWIFTFILE_ARCHITECTURE}")
319+
endif()
316320
set(module_file "${module_base}.swiftmodule")
321+
set(module_doc_file "${module_base}.swiftdoc")
322+
323+
# FIXME: These don't really belong inside the swiftmodule, but there's not
324+
# an obvious alternate place to put them.
317325
set(sib_file "${module_base}.Onone.sib")
318326
set(sibopt_file "${module_base}.O.sib")
319327
set(sibgen_file "${module_base}.sibgen")
320-
set(module_doc_file "${module_base}.swiftdoc")
321328

322329
if(SWIFT_ENABLE_PARSEABLE_MODULE_INTERFACES)
323330
set(interface_file "${module_base}.swiftinterface")
324-
list(APPEND swift_flags "-emit-parseable-module-interface")
331+
list(APPEND swift_flags
332+
"-emit-parseable-module-interface-path" "${interface_file}")
325333
endif()
326334

327-
list(APPEND command_create_dirs
328-
COMMAND "${CMAKE_COMMAND}" -E make_directory "${module_dir}")
335+
if(SWIFTFILE_SDK IN_LIST SWIFT_APPLE_PLATFORMS)
336+
list(APPEND command_create_dirs
337+
COMMAND "${CMAKE_COMMAND}" -E make_directory "${specific_module_dir}")
338+
else()
339+
list(APPEND command_create_dirs
340+
COMMAND "${CMAKE_COMMAND}" -E make_directory "${module_dir}")
341+
endif()
329342

330343
# If we have extra regexp flags, check if we match any of the regexps. If so
331344
# add the relevant flags to our swift_flags.
@@ -349,10 +362,15 @@ function(_compile_swift_files
349362
set(optional_arg "OPTIONAL")
350363
endif()
351364

352-
swift_install_in_component("${SWIFTFILE_INSTALL_IN_COMPONENT}"
353-
FILES ${module_outputs}
354-
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}"
355-
"${optional_arg}")
365+
if(SWIFTFILE_SDK IN_LIST SWIFT_APPLE_PLATFORMS)
366+
swift_install_in_component("${SWIFTFILE_INSTALL_IN_COMPONENT}"
367+
DIRECTORY "${specific_module_dir}"
368+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}")
369+
else()
370+
swift_install_in_component("${SWIFTFILE_INSTALL_IN_COMPONENT}"
371+
FILES ${module_outputs}
372+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${library_subdir}")
373+
endif()
356374

357375
set(line_directive_tool "${SWIFT_SOURCE_DIR}/utils/line-directive")
358376
set(swift_compiler_tool "${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/swiftc")

lib/Frontend/CompilerInvocation.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ static void updateRuntimeLibraryPath(SearchPathOptions &SearchPathOpts,
4949
llvm::sys::path::append(LibPath, getPlatformNameForTriple(Triple));
5050
SearchPathOpts.RuntimeLibraryPath = LibPath.str();
5151

52-
llvm::sys::path::append(LibPath, swift::getMajorArchitectureName(Triple));
52+
if (!Triple.isOSDarwin())
53+
llvm::sys::path::append(LibPath, swift::getMajorArchitectureName(Triple));
5354
SearchPathOpts.RuntimeLibraryImportPath = LibPath.str();
5455
}
5556

lib/Serialization/SerializedModuleLoader.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,10 +301,21 @@ SerializedModuleLoaderBase::findModule(AccessPathElem moduleID,
301301

302302
// Search the runtime import path.
303303
isFramework = false;
304-
return !findModuleFilesInDirectory(
305-
moduleID, Ctx.SearchPathOpts.RuntimeLibraryImportPath,
306-
moduleFilename.str(), moduleDocFilename.str(), moduleBuffer,
307-
moduleDocBuffer);
304+
currPath = Ctx.SearchPathOpts.RuntimeLibraryImportPath;
305+
if (Ctx.LangOpts.Target.isOSDarwin()) {
306+
// Apple platforms always use architecture-specific files within a
307+
// .swiftmodule directory for the stdlib.
308+
llvm::sys::path::append(currPath, moduleFilename.str());
309+
return !findModuleFilesInDirectory(moduleID, currPath,
310+
archFileNames.first,
311+
archFileNames.second,
312+
moduleBuffer, moduleDocBuffer);
313+
}
314+
// Non-Apple platforms always use single-architecture swiftmodules.
315+
return !findModuleFilesInDirectory(moduleID, currPath,
316+
moduleFilename.str(),
317+
moduleDocFilename.str(),
318+
moduleBuffer, moduleDocBuffer);
308319
}
309320

310321
static std::pair<StringRef, clang::VersionTuple>

test/DebugInfo/Imports.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// CHECK-DAG: ![[FOOMODULE:[0-9]+]] = !DIModule({{.*}}, name: "Foo", includePath: "{{.*}}test{{.*}}DebugInfo{{.*}}"
99
// CHECK-DAG: !DIImportedEntity(tag: DW_TAG_imported_module, scope: ![[THISFILE:[0-9]+]], entity: ![[FOOMODULE]]
1010
// CHECK-DAG: ![[THISFILE]] = !DIFile(filename: "{{.*}}test{{/|\\5C}}DebugInfo{{/|\\5C}}Imports.swift",
11-
// CHECK-DAG: ![[SWIFTFILE:[0-9]+]] = !DIFile(filename: "{{.*}}Swift.swiftmodule"
11+
// CHECK-DAG: ![[SWIFTFILE:[0-9]+]] = !DIFile(filename: "{{.*}}Swift.swiftmodule{{(/.+[.]swiftmodule)?}}"
1212
// CHECK-DAG: ![[SWIFTMODULE:[0-9]+]] = !DIModule({{.*}}, name: "Swift"
1313
// CHECK-DAG: !DIImportedEntity(tag: DW_TAG_imported_module, scope: ![[THISFILE]], entity: ![[SWIFTMODULE]]
1414
// CHECK-DAG: ![[BASICMODULE:[0-9]+]] = !DIModule({{.*}}, name: "basic"

test/DebugInfo/variables.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ print(", \(glob_b)", terminator: "")
4141
print(", \(glob_s)", terminator: "")
4242
var unused: Int32 = -1
4343

44-
// CHECK-DAG: ![[RT:[0-9]+]] ={{.*}}"{{.*}}Swift.swiftmodule"
44+
// CHECK-DAG: ![[RT:[0-9]+]] ={{.*}}"{{.*}}Swift.swiftmodule{{(/.+[.]swiftmodule)?}}"
4545

4646

4747
// Stack variables.

test/Driver/loaded_module_trace.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
// CHECK: "name":"loaded_module_trace"
1010
// CHECK: "arch":"{{[^"]*}}"
1111
// CHECK: "swiftmodules":[
12-
// CHECK: "{{[^"]*(/|\\\\)}}Module2.swiftmodule"
13-
// CHECK: "{{[^"]*(/|\\\\)}}Swift.swiftmodule"
14-
// CHECK: "{{[^"]*(/|\\\\)}}SwiftOnoneSupport.swiftmodule"
12+
// CHECK: "{{[^"]*\\[/\\]}}Module2.swiftmodule"
13+
// CHECK: "{{[^"]*\\[/\\]}}Swift.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}"
14+
// CHECK: "{{[^"]*\\[/\\]}}SwiftOnoneSupport.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}"
1515
// CHECK: ]
1616
// CHECK: }
1717

test/Driver/loaded_module_trace_env.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// CHECK: "name":"loaded_module_trace_env"
77
// CHECK: "arch":"{{[^"]*}}"
88
// CHECK: "swiftmodules":[
9-
// CHECK: "{{[^"]*(/|\\\\)}}Swift.swiftmodule"
10-
// CHECK: "{{[^"]*(/|\\\\)}}SwiftOnoneSupport.swiftmodule"
9+
// CHECK: "{{[^"]*\\[/\\]}}Swift.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}"
10+
// CHECK: "{{[^"]*\\[/\\]}}SwiftOnoneSupport.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}"
1111
// CHECK: ]
1212
// CHECK: }

test/Driver/loaded_module_trace_foundation.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
// CHECK: "name":"loaded_module_trace_foundation"
77
// CHECK: "arch":"{{[^"]*}}"
88
// CHECK: "swiftmodules":[
9-
// CHECK: "{{[^"]*}}/ObjectiveC.swiftmodule"
10-
// CHECK: "{{[^"]*}}/Dispatch.swiftmodule"
11-
// CHECK: "{{[^"]*}}/Darwin.swiftmodule"
12-
// CHECK: "{{[^"]*}}/Foundation.swiftmodule"
13-
// CHECK: "{{[^"]*}}/Swift.swiftmodule"
14-
// CHECK: "{{[^"]*}}/SwiftOnoneSupport.swiftmodule"
9+
// CHECK: "{{[^"]*}}/ObjectiveC.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
10+
// CHECK: "{{[^"]*}}/Dispatch.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
11+
// CHECK: "{{[^"]*}}/Darwin.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
12+
// CHECK: "{{[^"]*}}/Foundation.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
13+
// CHECK: "{{[^"]*}}/Swift.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
14+
// CHECK: "{{[^"]*}}/SwiftOnoneSupport.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
1515
// CHECK: ]
1616
// CHECK: }
1717

test/Driver/loaded_module_trace_header.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
// CHECK: "name":"loaded_module_trace_header"
99
// CHECK: "arch":"{{[^"]*}}"
1010
// CHECK: "swiftmodules":[
11-
// CHECK: "{{[^"]*}}/ObjectiveC.swiftmodule"
12-
// CHECK: "{{[^"]*}}/Dispatch.swiftmodule"
13-
// CHECK: "{{[^"]*}}/Darwin.swiftmodule"
14-
// CHECK: "{{[^"]*}}/Foundation.swiftmodule"
15-
// CHECK: "{{[^"]*}}/Swift.swiftmodule"
16-
// CHECK: "{{[^"]*}}/SwiftOnoneSupport.swiftmodule"
11+
// CHECK: "{{[^"]*}}/ObjectiveC.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
12+
// CHECK: "{{[^"]*}}/Dispatch.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
13+
// CHECK: "{{[^"]*}}/Darwin.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
14+
// CHECK: "{{[^"]*}}/Foundation.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
15+
// CHECK: "{{[^"]*}}/Swift.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
16+
// CHECK: "{{[^"]*}}/SwiftOnoneSupport.swiftmodule{{(\\/[^"]+[.]swiftmodule)?}}"
1717
// CHECK: ]
1818
// CHECK: }

test/Driver/loaded_module_trace_multifile.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
// CHECK: "name":"loaded_module_trace_multifile"
1111
// CHECK: "arch":"{{[^"]*}}"
1212
// CHECK: "swiftmodules":[
13-
// CHECK: "{{[^"]*[/\\]}}Module2.swiftmodule"
14-
// CHECK: "{{[^"]*[/\\]}}Module.swiftmodule"
15-
// CHECK: "{{[^"]*[/\\]}}Swift.swiftmodule"
16-
// CHECK: "{{[^"]*[/\\]}}SwiftOnoneSupport.swiftmodule"
13+
// CHECK-DAG: "{{[^"]*\\[/\\]}}Module2.swiftmodule"
14+
// CHECK-DAG: "{{[^"]*\\[/\\]}}Module.swiftmodule"
15+
// CHECK-DAG: "{{[^"]*\\[/\\]}}Swift.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}"
16+
// CHECK-DAG: "{{[^"]*\\[/\\]}}SwiftOnoneSupport.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}"
1717
// CHECK: ]
1818
// CHECK: }
1919

test/Frontend/dependencies.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
// CHECK-BASIC-YAML-LABEL: depends-external:
1616
// CHECK-BASIC-YAML-NOT: empty\ file.swift
17-
// CHECK-BASIC-YAML: "{{.*}}{{/|\\}}Swift.swiftmodule"
17+
// CHECK-BASIC-YAML: "{{.*}}{{/|\\}}Swift.swiftmodule{{(/.+[.]swiftmodule)?}}"
1818
// CHECK-BASIC-YAML-NOT: {{:$}}
1919

2020

@@ -80,7 +80,7 @@
8080

8181
// CHECK-IMPORT-YAML-LABEL: depends-external:
8282
// CHECK-IMPORT-YAML-NOT: dependencies.swift
83-
// CHECK-IMPORT-YAML-DAG: "{{.*}}{{/|\\}}Swift.swiftmodule"
83+
// CHECK-IMPORT-YAML-DAG: "{{.*}}{{/|\\}}Swift.swiftmodule{{(/.+[.]swiftmodule)?}}"
8484
// CHECK-IMPORT-YAML-DAG: "{{.*}}Inputs/dependencies/$$$$$.h"
8585
// CHECK-IMPORT-YAML-DAG: "{{.*}}Inputs/dependencies{{/|\\\\}}UserClangModule.h"
8686
// CHECK-IMPORT-YAML-DAG: "{{.*}}Inputs/dependencies/extra-header.h"

test/Index/Store/unit-one-file-multi-file-invocation.swift

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1-
// RUN: rm -rf %t
2-
// RUN: %target-build-swift -index-file -index-file-path %s %s %S/Inputs/SwiftModuleA.swift -module-name unit_one_test -o %t.output_for_index -index-store-path %t/idx
3-
// RUN: c-index-test core -print-unit %t/idx | %FileCheck %s -check-prefix=UNIT
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-build-swift -index-file -index-file-path %s %s %S/Inputs/SwiftModuleA.swift -module-name unit_one_test -o %t/00-output_for_index -index-store-path %t/idx
3+
// RUN: c-index-test core -print-unit %t/idx | %FileCheck %s -implicit-check-not SwiftShims
44

5-
// UNIT-NOT: SwiftShims
5+
// The output is sorted by last path component, so make sure the top-level entry
6+
// gets sorted first by prepending 0s.
67

7-
// UNIT: [[SWIFT:Swift.swiftmodule-[A-Z0-9]*]]
8-
// UNIT: DEPEND START
9-
// UNIT: Record | system | Swift.Math.Floating | {{.*}}Swift.swiftmodule | Swift.swiftmodule_Math_Floating-{{.*}}
10-
// UNIT: Record | system | Swift.String | {{.*}}Swift.swiftmodule | Swift.swiftmodule_String-{{.*}}
11-
// UNIT: DEPEND END
8+
// CHECK: 00-output_for_index
9+
// CHECK: DEPEND START
10+
// CHECK: Unit | system | Swift | [[MODULE:.*[/\\]Swift[.]swiftmodule([/\\].+[.]swiftmodule)?]] | [[SWIFT:.+[.]swiftmodule-[A-Z0-9]*]]
11+
// CHECK: Record | user | {{.*}}{{/|\\}}unit-one-file-multi-file-invocation.swift |
12+
// CHECK: DEPEND END (2)
1213

13-
// UNIT: unit-one-file-multi-file-invocation{{.*}}.output_for_index
14-
// UNIT: DEPEND START
15-
// UNIT: Unit | system | {{.*}}{{/|\\}}Swift.swiftmodule | [[SWIFT]]
16-
// UNIT: Record | user | {{.*}}{{/|\\}}unit-one-file-multi-file-invocation.swift |
17-
// UNIT: DEPEND END (2)
14+
// CHECK: [[SWIFT]]
15+
// CHECK: DEPEND START
16+
// CHECK: Record | system | Swift.Math.Floating | [[MODULE]] | {{.+}}.swiftmodule_Math_Floating-{{.*}}
17+
// CHECK: Record | system | Swift.String | [[MODULE]] | {{.+}}.swiftmodule_String-{{.*}}
18+
// CHECK: DEPEND END
1819

1920
func test1() {
2021
funcSwiftA()

test/ParseableInterface/ModuleCache/module-cache-init.swift

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
// RUN: test -f %t/modulecache/LeafModule-*.swiftmodule
2525
// RUN: llvm-bcanalyzer -dump %t/modulecache/LeafModule-*.swiftmodule | %FileCheck %s -check-prefix=CHECK-LEAFMODULE
2626
// CHECK-LEAFMODULE: {{MODULE_NAME.*blob data = 'LeafModule'}}
27-
// CHECK-LEAFMODULE: {{FILE_DEPENDENCY.*Swift.swiftmodule'}}
27+
// CHECK-LEAFMODULE: {{FILE_DEPENDENCY.*Swift.swiftmodule([/\\].+[.]swiftmodule)?'}}
2828
// CHECK-LEAFMODULE: {{FILE_DEPENDENCY.*LeafModule.swiftinterface'}}
2929
// CHECK-LEAFMODULE: FUNC_DECL
3030
//
@@ -37,7 +37,7 @@
3737
// RUN: test -f %t/TestModule.d
3838
// RUN: llvm-bcanalyzer -dump %t/modulecache/OtherModule-*.swiftmodule | %FileCheck %s -check-prefix=CHECK-OTHERMODULE
3939
// CHECK-OTHERMODULE: {{MODULE_NAME.*blob data = 'OtherModule'}}
40-
// CHECK-OTHERMODULE: {{FILE_DEPENDENCY.*Swift.swiftmodule'}}
40+
// CHECK-OTHERMODULE: {{FILE_DEPENDENCY.*Swift.swiftmodule([/\\].+[.]swiftmodule)?'}}
4141
// CHECK-OTHERMODULE: {{FILE_DEPENDENCY.*LeafModule.swiftinterface'}}
4242
// CHECK-OTHERMODULE: {{FILE_DEPENDENCY.*LeafModule-.*.swiftmodule'}}
4343
// CHECK-OTHERMODULE: {{FILE_DEPENDENCY.*OtherModule.swiftinterface'}}
@@ -50,21 +50,17 @@
5050
//
5151
// So we cannot write a single set of CHECK-SAME lines here that will work
5252
// for all targets: some will have LeafModule first, some OtherModule
53-
// first. So instead, we write two sets of patterns, and run FileCheck
54-
// twice. Yes this is silly.
53+
// first. So instead we just use CHECK-DAG.
5554
//
5655
// RUN: %FileCheck %s -check-prefix=CHECK-DEPENDS <%t/TestModule.d
57-
// RUN: %FileCheck %s -check-prefix=CHECK-DEPENDSAGAIN <%t/TestModule.d
5856
//
5957
// CHECK-DEPENDS: TestModule.swiftmodule :
60-
// CHECK-DEPENDS-SAME: LeafModule.swiftinterface
61-
// CHECK-DEPENDS-SAME: OtherModule.swiftinterface
62-
// CHECK-DEPENDS-SAME: {{OtherModule-[^ ]+.swiftmodule}}
63-
// CHECK-DEPENDS-SAME: Swift.swiftmodule
64-
// CHECK-DEPENDS-SAME: SwiftOnoneSupport.swiftmodule
65-
//
66-
// CHECK-DEPENDSAGAIN: TestModule.swiftmodule :
67-
// CHECK-DEPENDSAGAIN-SAME: {{LeafModule-[^ ]+.swiftmodule}}
58+
// CHECK-DEPENDS-DAG: LeafModule.swiftinterface
59+
// CHECK-DEPENDS-DAG: OtherModule.swiftinterface
60+
// CHECK-DEPENDS-DAG: {{OtherModule-[^ ]+.swiftmodule}}
61+
// CHECK-DEPENDS-DAG: Swift.swiftmodule
62+
// CHECK-DEPENDS-DAG: SwiftOnoneSupport.swiftmodule
63+
// CHECK-DEPENDS-DAG: {{LeafModule-[^ ]+.swiftmodule}}
6864

6965
import OtherModule
7066

test/SIL/Serialization/deserialize_appkit.sil

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Make sure that we can deserialize AppKit.
2-
// RUN: %target-sil-opt %platform-sdk-overlay-dir/AppKit.swiftmodule > /dev/null
3-
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/AppKit.swiftmodule | %FileCheck %s
2+
// RUN: %target-sil-opt %platform-sdk-overlay-dir/AppKit.swiftmodule/%target-swiftmodule-name -module-name AppKit > /dev/null
3+
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/AppKit.swiftmodule/%target-swiftmodule-name | %FileCheck %s
44

55
// REQUIRES: objc_interop
66
// REQUIRES: OS=macosx

test/SIL/Serialization/deserialize_coregraphics.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Make sure that we can deserialize CoreGraphics.
2-
// RUN: %target-sil-opt %platform-sdk-overlay-dir/CoreGraphics.swiftmodule > /dev/null
3-
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/CoreGraphics.swiftmodule | %FileCheck %s
2+
// RUN: %target-sil-opt %platform-sdk-overlay-dir/CoreGraphics.swiftmodule/%target-swiftmodule-name -module-name CoreGraphics > /dev/null
3+
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/CoreGraphics.swiftmodule/%target-swiftmodule-name | %FileCheck %s
44

55
// REQUIRES: objc_interop
66

test/SIL/Serialization/deserialize_darwin.sil

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Make sure that we can deserialize darwin.
2-
// RUN: %target-sil-opt %platform-sdk-overlay-dir/Darwin.swiftmodule > /dev/null
3-
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/Darwin.swiftmodule | %FileCheck %s
2+
// RUN: %target-sil-opt %platform-sdk-overlay-dir/Darwin.swiftmodule/%target-swiftmodule-name -module-name Darwin > /dev/null
3+
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/Darwin.swiftmodule/%target-swiftmodule-name | %FileCheck %s
44

55
// REQUIRES: objc_interop
66

test/SIL/Serialization/deserialize_foundation.sil

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Make sure that we can deserialize foundation.
2-
// RUN: %target-sil-opt %platform-sdk-overlay-dir/Foundation.swiftmodule > /dev/null
3-
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/Foundation.swiftmodule | %FileCheck %s
2+
// RUN: %target-sil-opt %platform-sdk-overlay-dir/Foundation.swiftmodule/%target-swiftmodule-name -module-name Foundation > /dev/null
3+
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/Foundation.swiftmodule/%target-swiftmodule-name | %FileCheck %s
44

55
// REQUIRES: objc_interop
66

test/SIL/Serialization/deserialize_objectivec.sil

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Make sure that we can deserialize Objective-C.
2-
// RUN: %target-sil-opt %platform-sdk-overlay-dir/ObjectiveC.swiftmodule > /dev/null
3-
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/ObjectiveC.swiftmodule | %FileCheck %s
2+
// RUN: %target-sil-opt %platform-sdk-overlay-dir/ObjectiveC.swiftmodule/%target-swiftmodule-name -module-name ObjectiveC > /dev/null
3+
// RUN: llvm-bcanalyzer %platform-sdk-overlay-dir/ObjectiveC.swiftmodule/%target-swiftmodule-name | %FileCheck %s
44

55
// REQUIRES: objc_interop
66

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Make sure that we can deserialize the stdlib.
2-
// RUN: %target-sil-opt %platform-module-dir/Swift.swiftmodule > /dev/null
3-
// RUN: llvm-bcanalyzer %platform-module-dir/Swift.swiftmodule | %FileCheck %s
2+
// RUN: %target-sil-opt %platform-module-dir/Swift.swiftmodule/%target-swiftmodule-name -module-name Swift > /dev/null || %target-sil-opt %platform-module-dir/Swift.swiftmodule -module-name Swift > /dev/null
3+
// RUN: llvm-bcanalyzer %platform-module-dir/Swift.swiftmodule/%target-swiftmodule-name > %t || llvm-bcanalyzer %platform-module-dir/Swift.swiftmodule > %t
4+
// RUN: %FileCheck %s < %t
45

56
// CHECK-NOT: Unknown

test/SourceKit/Indexing/index_with_swift_module.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func foo(a: TwoInts) {
1313

1414
// CHECK: key.kind: source.lang.swift.import.module.swift
1515
// CHECK-NEXT: key.name: "Swift"
16-
// CHECK-NEXT: key.filepath: "{{.*[/\\]}}Swift.swiftmodule"
16+
// CHECK-NEXT: key.filepath: "{{.*[/\\]Swift[.]swiftmodule([/\\].+[.]swiftmodule)?}}"
1717
// CHECK-NEXT: key.hash:
1818

1919
// CHECK: key.kind: source.lang.swift.import.module.swift

0 commit comments

Comments
 (0)