[PATCH] D104092: [llvm-objcopy][MachO] Keep symbols having the flag REFERENCED_DYNAMICALLY set
Alexander Shaposhnikov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 11 16:35:43 PDT 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG0276cc742bfc: [llvm-objcopy][MachO] Do not strip symbols with the flag REFERENCED_DYNAMICALLY… (authored by alexshap).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D104092/new/
https://reviews.llvm.org/D104092
Files:
llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
llvm/test/tools/llvm-objcopy/MachO/strip-all.test
llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
Index: llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
===================================================================
--- llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
+++ llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp
@@ -99,6 +99,8 @@
return false;
if (Config.KeepUndefined && N->isUndefinedSymbol())
return false;
+ if (N->n_desc & MachO::REFERENCED_DYNAMICALLY)
+ return false;
if (Config.StripAll)
return true;
if (Config.DiscardMode == DiscardType::All && !(N->n_type & MachO::N_EXT))
Index: llvm/test/tools/llvm-objcopy/MachO/strip-all.test
===================================================================
--- llvm/test/tools/llvm-objcopy/MachO/strip-all.test
+++ llvm/test/tools/llvm-objcopy/MachO/strip-all.test
@@ -45,8 +45,20 @@
# DWARF-NOT: Name: __debug_line
# DWARF: ]
-## Make sure that all relocations and symbols are removed.
+## Make sure that all relocations and symbols
+## (except those which have the flag ReferencedDynamically set) are removed.
# COMMON: Relocations [
# COMMON-NEXT: ]
-# COMMON: Symbols [
+# COMMON-NEXT: Symbols [
+# COMMON-NEXT: Symbol {
+# COMMON-NEXT: Name: __mh_execute_header
+# COMMON-NEXT: Extern
+# COMMON-NEXT: Type: Section
+# COMMON-NEXT: Section: __text
+# COMMON-NEXT: RefType: UndefinedNonLazy
+# COMMON-NEXT: Flags [ (0x10)
+# COMMON-NEXT: ReferencedDynamically (0x10)
+# COMMON-NEXT: ]
+# COMMON-NEXT: Value:
+# COMMON-NEXT: }
# COMMON-NEXT: ]
Index: llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
===================================================================
--- llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
+++ llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml
@@ -254,9 +254,9 @@
- cmd: LC_SYMTAB
cmdsize: 24
symoff: 2136
- nsyms: 3
- stroff: 2184
- strsize: 20
+ nsyms: 4
+ stroff: 2204
+ strsize: 40
- cmd: LC_DYSYMTAB
cmdsize: 80
ilocalsym: 0
@@ -279,23 +279,31 @@
nlocrel: 0
LinkEditData:
NameList:
- - n_strx: 1
+ - n_strx: 21
n_type: 0x0E
n_sect: 2
n_desc: 0
n_value: 36
- - n_strx: 11
+ - n_strx: 31
n_type: 0x0F
n_sect: 1
n_desc: 0
n_value: 0
- - n_strx: 6
+ ## __mh_execute_header
+ - n_strx: 1
+ n_type: 0xF
+ n_sect: 1
+ ## ReferencedDynamically (0x10)
+ n_desc: 16
+ n_value: 4294967296
+ - n_strx: 26
n_type: 0x01
n_sect: 0
n_desc: 512
n_value: 4
StringTable:
- ''
+ - __mh_execute_header
- _bar
- _foo
- _main
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104092.351579.patch
Type: text/x-patch
Size: 3017 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210611/0d2c2dd8/attachment.bin>
More information about the llvm-commits
mailing list