Skip to content

Commit abd31b4

Browse files
authored
[LLD][MinGW] Exclude load config symbols from auto-export (#126134)
1 parent c8b2ba7 commit abd31b4

File tree

2 files changed

+8
-27
lines changed

2 files changed

+8
-27
lines changed

lld/COFF/MinGW.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ AutoExporter::AutoExporter(
9292
"__fmode",
9393
"_environ",
9494
"___dso_handle",
95+
"__load_config_used",
9596
// These are the MinGW names that differ from the standard
9697
// ones (lacking an extra underscore).
9798
"_DllMain@12",
@@ -109,6 +110,7 @@ AutoExporter::AutoExporter(
109110
"_fmode",
110111
"environ",
111112
"__dso_handle",
113+
"_load_config_used",
112114
// These are the MinGW names that differ from the standard
113115
// ones (lacking an extra underscore).
114116
"DllMain",
@@ -117,6 +119,10 @@ AutoExporter::AutoExporter(
117119
};
118120
excludeSymbolPrefixes.insert("_head_");
119121
}
122+
if (symtab.isEC()) {
123+
excludeSymbols.insert("__chpe_metadata");
124+
excludeSymbolPrefixes.insert("__os_arm64x_");
125+
}
120126
}
121127

122128
void AutoExporter::addWholeArchive(StringRef path) {

lld/test/COFF/arm64x-export-all.s

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,11 @@
1515
// EXP-NEXT: AddressSize: 64bit
1616
// EXP-NEXT: Export {
1717
// EXP-NEXT: Ordinal: 1
18-
// EXP-NEXT: Name: _load_config_used
19-
// EXP-NEXT: RVA:
20-
// EXP-NEXT: }
21-
// EXP-NEXT: Export {
22-
// EXP-NEXT: Ordinal: 2
2318
// EXP-NEXT: Name: sym
2419
// EXP-NEXT: RVA: 0x2000
2520
// EXP-NEXT: }
2621
// EXP-NEXT: Export {
27-
// EXP-NEXT: Ordinal: 3
22+
// EXP-NEXT: Ordinal: 2
2823
// EXP-NEXT: Name: sym2
2924
// EXP-NEXT: RVA: 0x2004
3025
// EXP-NEXT: }
@@ -34,31 +29,11 @@
3429
// EXP-NEXT: AddressSize: 64bit
3530
// EXP-NEXT: Export {
3631
// EXP-NEXT: Ordinal: 1
37-
// EXP-NEXT: Name: __chpe_metadata
38-
// EXP-NEXT: RVA:
39-
// EXP-NEXT: }
40-
// EXP-NEXT: Export {
41-
// EXP-NEXT: Ordinal: 2
42-
// EXP-NEXT: Name: __os_arm64x_dispatch_icall
43-
// EXP-NEXT: RVA: 0x12B0
44-
// EXP-NEXT: }
45-
// EXP-NEXT: Export {
46-
// EXP-NEXT: Ordinal: 3
47-
// EXP-NEXT: Name: __os_arm64x_dispatch_ret
48-
// EXP-NEXT: RVA:
49-
// EXP-NEXT: }
50-
// EXP-NEXT: Export {
51-
// EXP-NEXT: Ordinal: 4
52-
// EXP-NEXT: Name: _load_config_used
53-
// EXP-NEXT: RVA:
54-
// EXP-NEXT: }
55-
// EXP-NEXT: Export {
56-
// EXP-NEXT: Ordinal: 5
5732
// EXP-NEXT: Name: sym
5833
// EXP-NEXT: RVA: 0x2008
5934
// EXP-NEXT: }
6035
// EXP-NEXT: Export {
61-
// EXP-NEXT: Ordinal: 6
36+
// EXP-NEXT: Ordinal: 2
6237
// EXP-NEXT: Name: sym2
6338
// EXP-NEXT: RVA: 0x200C
6439
// EXP-NEXT: }

0 commit comments

Comments
 (0)