Skip to content

Commit d644728

Browse files
authored
Merge pull request #78514 from al45tair/eng/PR-137201928
[Backtracing] Update module maps.
2 parents 9121192 + d3352ef commit d644728

29 files changed

+800
-178
lines changed

Diff for: include/swift/Runtime/CrashInfo.h

-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
namespace swift {
2525
namespace runtime {
2626
namespace backtrace {
27-
extern "C" {
2827
#endif
2928

3029
// Note: The "pointers" below are pointers in a different process's address
@@ -89,7 +88,6 @@ struct thread {
8988
#endif
9089

9190
#ifdef __cplusplus
92-
} // extern "C"
9391
} // namespace backtrace
9492
} // namespace runtime
9593
} // namespace swift

Diff for: stdlib/public/Backtracing/Backtrace.swift

+11-3
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,22 @@
1616

1717
import Swift
1818

19-
@_implementationOnly import OS.Libc
19+
#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
20+
internal import Darwin
21+
#elseif os(Windows)
22+
internal import ucrt
23+
#elseif canImport(Glibc)
24+
internal import Glibc
25+
#elseif canImport(Musl)
26+
internal import Musl
27+
#endif
2028

2129
#if os(macOS) || os(iOS) || os(watchOS) || os(tvOS)
22-
@_implementationOnly import OS.Darwin
30+
internal import BacktracingImpl.OS.Darwin
2331
#endif
2432

2533
#if os(Linux)
26-
@_implementationOnly import ImageFormats.Elf
34+
internal import BacktracingImpl.ImageFormats.Elf
2735
#endif
2836

2937
/// Holds a backtrace.

Diff for: stdlib/public/Backtracing/BacktraceFormatter.swift

+10-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,16 @@
1717

1818
import Swift
1919

20-
@_implementationOnly import OS.Libc
20+
#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
21+
internal import Darwin
22+
internal import BacktracingImpl.OS.Darwin
23+
#elseif os(Windows)
24+
internal import ucrt
25+
#elseif canImport(Glibc)
26+
internal import Glibc
27+
#elseif canImport(Musl)
28+
internal import Musl
29+
#endif
2130

2231
/// A backtrace formatting theme.
2332
@_spi(Formatting)

Diff for: stdlib/public/Backtracing/CMakeLists.txt

+14-4
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ set(BACKTRACING_SOURCES
3636
Image.swift
3737
ImageSource.swift
3838
MemoryImageSource.swift
39+
Libc.swift
3940
MemoryReader.swift
4041
ProcMapsScanner.swift
4142
Registers.swift
43+
Runtime.swift
4244
SymbolicatedBacktrace.swift
4345
Utils.swift
4446
Win32Extras.cpp
@@ -47,13 +49,12 @@ set(BACKTRACING_SOURCES
4749
)
4850

4951
set(BACKTRACING_COMPILE_FLAGS
52+
"-cxx-interoperability-mode=default"
5053
"-Xfrontend;-experimental-spi-only-imports"
5154
"-Xcc;-I${SWIFT_SOURCE_DIR}/include"
5255
"-Xcc;-I${CMAKE_BINARY_DIR}/include"
53-
"-Xcc;-fno-implicit-module-maps"
54-
"-Xcc;-fbuiltin-module-map"
55-
"-Xcc;-fmodule-map-file=${SWIFT_STDLIB_SOURCE_DIR}/public/SwiftShims/swift/shims/module.modulemap"
56-
"-Xcc;-fmodule-map-file=${SWIFT_STDLIB_SOURCE_DIR}/public/Backtracing/modules/module.modulemap")
56+
"-Xcc;-I${SWIFT_STDLIB_SOURCE_DIR}/public/Backtracing/modules"
57+
"-disable-upcoming-feature;MemberImportVisibility")
5758

5859
###TODO: Add these when we add static linking support
5960
#
@@ -79,6 +80,15 @@ add_swift_target_library(swift_Backtracing ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
7980

8081
SWIFT_MODULE_DEPENDS ${concurrency}
8182

83+
SWIFT_MODULE_DEPENDS_ANDROID Android
84+
SWIFT_MODULE_DEPENDS_LINUX Glibc
85+
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
86+
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
87+
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
88+
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
89+
SWIFT_MODULE_DEPENDS_HAIKU Glibc
90+
SWIFT_MODULE_DEPENDS_WINDOWS CRT
91+
8292
PRIVATE_LINK_LIBRARIES ${swift_backtracing_link_libraries}
8393

8494
SWIFT_COMPILE_FLAGS

Diff for: stdlib/public/Backtracing/Compression.swift

+14-3
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,17 @@
2929

3030
import Swift
3131

32-
@_implementationOnly import OS.Libc
33-
@_implementationOnly import CompressionLibs
34-
@_implementationOnly import ImageFormats.Elf
32+
#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
33+
internal import Darwin
34+
#elseif os(Windows)
35+
internal import ucrt
36+
#elseif canImport(Glibc)
37+
internal import Glibc
38+
#elseif canImport(Musl)
39+
internal import Musl
40+
#endif
41+
internal import BacktracingImpl.CompressionLibs
42+
internal import BacktracingImpl.ImageFormats.Elf
3543

3644
enum CompressedImageSourceError: Error {
3745
case unboundedImageSource
@@ -42,6 +50,9 @@ enum CompressedImageSourceError: Error {
4250
case outputOverrun
4351
}
4452

53+
let zlib_stream_init = swift.runtime.zlib_stream_init
54+
let lzma_stream_init = swift.runtime.lzma_stream_init
55+
4556
// .. CompressedStream .........................................................
4657

4758
protocol CompressedStream {

Diff for: stdlib/public/Backtracing/Context.swift

+17-4
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,26 @@
1919

2020
import Swift
2121

22+
#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
23+
internal import Darwin
24+
#elseif os(Windows)
25+
internal import ucrt
26+
#elseif canImport(Glibc)
27+
internal import Glibc
28+
#elseif canImport(Musl)
29+
internal import Musl
30+
#endif
31+
2232
#if os(macOS) || os(iOS) || os(watchOS) || os(tvOS)
23-
@_implementationOnly import OS.Darwin
24-
#elseif os(Linux)
25-
@_implementationOnly import OS.Linux
33+
internal import BacktracingImpl.OS.Darwin
2634
#endif
2735

28-
@_implementationOnly import FixedLayout
36+
internal import BacktracingImpl.FixedLayout
37+
38+
typealias x86_64_gprs = swift.runtime.backtrace.x86_64_gprs
39+
typealias i386_gprs = swift.runtime.backtrace.i386_gprs
40+
typealias arm64_gprs = swift.runtime.backtrace.arm64_gprs
41+
typealias arm_gprs = swift.runtime.backtrace.arm_gprs
2942

3043
@_spi(Contexts) public enum ContextError: Error {
3144
case unableToFormTLSAddress

Diff for: stdlib/public/Backtracing/CoreSymbolication.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
import Swift
2121

22-
@_implementationOnly import OS.Libc
23-
@_implementationOnly import OS.Darwin
22+
internal import Darwin
23+
internal import BacktracingImpl.OS.Darwin
2424

2525
// .. Dynamic binding ..........................................................
2626

0 commit comments

Comments
 (0)