Skip to content

Commit e2cb342

Browse files
committed
[llvm][Object] set SF_Hidden flag for MachO files
Reviewed By: pete, ributzka Differential Revision: https://reviews.llvm.org/D139862 (cherry picked from commit ac20a3a)
1 parent 66aea28 commit e2cb342

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

lld/test/MachO/alias-symbols.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515

1616
# CHECK-DAG: [[#%.16x,STRONG:]] g F __TEXT,__text _strong
1717
# CHECK-DAG: [[#%.16x,WEAK_1:]] w F __TEXT,__text _weak_1
18-
# CHECK-DAG: [[#%.16x,PEXT:]] l F __TEXT,__text _pext
18+
# CHECK-DAG: [[#%.16x,PEXT:]] l F __TEXT,__text .hidden _pext
1919
# CHECK-DAG: [[#%.16x,DEAD:]] g F __TEXT,__text _dead
20-
# CHECK-DAG: [[#STRONG]] l F __TEXT,__text _pext_alias
21-
# CHECK-DAG: [[#PEXT]] l F __TEXT,__text _alias_to_pext
20+
# CHECK-DAG: [[#STRONG]] l F __TEXT,__text .hidden _pext_alias
21+
# CHECK-DAG: [[#PEXT]] l F __TEXT,__text .hidden _alias_to_pext
2222
# CHECK-DAG: [[#STRONG]] g F __TEXT,__text _extern_alias_to_strong
2323
# CHECK-DAG: [[#WEAK_1]] w F __TEXT,__text _weak_extern_alias_to_weak
2424
# CHECK-DAG: [[#DEAD]] g F __TEXT,__text _no_dead_strip_alias

lld/test/MachO/lto-explicit-exports.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
; THINLTO-REFS-FOO: declare dso_local void @foo()
4747
; THINLTO-REFS-FOO: define dso_local void @refs_foo()
4848

49-
; THINLTO-SYMS: l F __TEXT,__text _foo
49+
; THINLTO-SYMS: l F __TEXT,__text .hidden _foo
5050
; THINLTO-SYMS: g F __TEXT,__text _same_module_caller
5151
; THINLTO-SYMS: g F __TEXT,__text _refs_foo
5252

lld/test/MachO/weak-definition-gc.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@
7070
# RUN: %lld -o %t/out -lSystem %t/weak-aligned-1.o %t/weak-aligned-2.o -dead_strip
7171
# RUN: llvm-objdump --syms --section=__const --full-contents %t/out | FileCheck --check-prefixes=ALIGN,ALIGN3 %s
7272
# ALIGN: SYMBOL TABLE:
73-
# ALIGN-DAG: [[#%x, ADDR:]] l O __DATA_CONST,__const _weak1
74-
# ALIGN2-DAG: {{0*}}[[#ADDR+ 0x4]] l O __DATA_CONST,__const _weak3
75-
# ALIGN3-DAG: {{0*}}[[#ADDR+ 0x4]] l O __DATA_CONST,__const _weak2
76-
# ALIGN2-DAG: {{0*}}[[#ADDR+ 0x8]] l O __DATA_CONST,__const _weak2
73+
# ALIGN-DAG: [[#%x, ADDR:]] l O __DATA_CONST,__const .hidden _weak1
74+
# ALIGN2-DAG: {{0*}}[[#ADDR+ 0x4]] l O __DATA_CONST,__const .hidden _weak3
75+
# ALIGN3-DAG: {{0*}}[[#ADDR+ 0x4]] l O __DATA_CONST,__const .hidden _weak2
76+
# ALIGN2-DAG: {{0*}}[[#ADDR+ 0x8]] l O __DATA_CONST,__const .hidden _weak2
7777
# ALIGN-DAG: {{0*}}[[#ADDR+0x10]] g O __DATA_CONST,__const _aligned
7878
# ALIGN: Contents of section __DATA_CONST,__const:
7979
# ALIGN2-NEXT: {{0*}}[[#ADDR]] 11111111 33333333 22222222 00000000

llvm/lib/Object/MachOObjectFile.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1876,9 +1876,13 @@ Expected<uint32_t> MachOObjectFile::getSymbolFlags(DataRefImpl DRI) const {
18761876
Result |= SymbolRef::SF_Undefined;
18771877
}
18781878

1879-
if (!(MachOType & MachO::N_PEXT))
1879+
if (MachOType & MachO::N_PEXT)
1880+
Result |= SymbolRef::SF_Hidden;
1881+
else
18801882
Result |= SymbolRef::SF_Exported;
1881-
}
1883+
1884+
} else if (MachOType & MachO::N_PEXT)
1885+
Result |= SymbolRef::SF_Hidden;
18821886

18831887
if (MachOFlags & (MachO::N_WEAK_REF | MachO::N_WEAK_DEF))
18841888
Result |= SymbolRef::SF_Weak;

0 commit comments

Comments
 (0)