Skip to content

Commit 4f0e866

Browse files
authored
[TBDGen] Ensure symbols listed include maccatalyst when library is built (#67160)
zippered. This also introduces a dependency on new testing tool llvm-tapi-diff. This allows for a structural difference check on tbd files. resolves: rdar://107368040
1 parent 5b29319 commit 4f0e866

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

lib/IRGen/TBDGen.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,13 +606,14 @@ TBDFile GenerateTBDRequest::evaluate(Evaluator &evaluator,
606606

607607
llvm::MachO::Target target(ctx.LangOpts.Target);
608608
file.addTarget(target);
609+
llvm::MachO::TargetList targets{target};
609610
// Add target variant
610611
if (ctx.LangOpts.TargetVariant.has_value()) {
611612
llvm::MachO::Target targetVar(*ctx.LangOpts.TargetVariant);
612613
file.addTarget(targetVar);
614+
targets.push_back(targetVar);
613615
}
614616

615-
llvm::MachO::TargetList targets{target};
616617
auto addSymbol = [&](StringRef symbol, SymbolKind kind, SymbolSource source) {
617618
file.addSymbol(kind, symbol, targets);
618619
};

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ function(get_test_dependencies SDK result_var_name)
9292
llvm-readobj
9393
llvm-size
9494
llvm-strings
95+
llvm-tapi-diff
9596
not
9697
split-file)
9798
endif()

test/TBD/zippered.swift

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// REQUIRES: OS=macosx
2+
// RUN: %empty-directory(%t)
3+
// RUN: split-file %s %t
4+
5+
// RUN: %swift -target arm64-apple-macos13.0 -target-variant arm64-apple-ios16.0-macabi -typecheck -parse-as-library %t/test.swift -emit-tbd -emit-tbd-path %t/zippered.tbd
6+
// RUN: %llvm-tapi-diff %t/zippered.tbd %t/expected.tbd
7+
8+
//--- test.swift
9+
public func foo() -> Bool {
10+
return true
11+
}
12+
13+
//--- expected.tbd
14+
--- !tapi-tbd
15+
tbd-version: 4
16+
targets: [ arm64-macos, arm64-maccatalyst ]
17+
flags: [ not_app_extension_safe ]
18+
install-name: ''
19+
current-version: 0
20+
compatibility-version: 0
21+
swift-abi-version: 7
22+
exports:
23+
- targets: [ arm64-macos, arm64-maccatalyst ]
24+
symbols: [ '_$s4test3fooSbyF' ]
25+
...

test/lit.cfg

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@ config.llvm_dwarfdump = inferSwiftBinary('llvm-dwarfdump')
337337
config.llvm_readelf = inferSwiftBinary('llvm-readelf')
338338
config.llvm_dis = inferSwiftBinary('llvm-dis')
339339
config.llvm_nm = inferSwiftBinary('llvm-nm')
340+
config.llvm_tapi_diff = inferSwiftBinary('llvm-tapi-diff')
340341
config.llvm_size = inferSwiftBinary('llvm-size')
341342
config.sourcekitd_test = inferSwiftBinary('sourcekitd-test')
342343
config.complete_test = inferSwiftBinary('complete-test')
@@ -604,6 +605,7 @@ config.substitutions.append( ('%llvm-dwarfdump', config.llvm_dwarfdump) )
604605
config.substitutions.append( ('%llvm-readelf', config.llvm_readelf) )
605606
config.substitutions.append( ('%llvm-dis', config.llvm_dis) )
606607
config.substitutions.append( ('%llvm-nm', config.llvm_nm) )
608+
config.substitutions.append( ('%llvm-tapi-diff', config.llvm_tapi_diff) )
607609
config.substitutions.append( ('%llvm-size', config.llvm_size) )
608610
config.substitutions.append( ('%swift-demangle-yamldump', config.swift_demangle_yamldump) )
609611
config.substitutions.append( ('%swift-demangle', config.swift_demangle) )

0 commit comments

Comments
 (0)