Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.

Commit dbd9cc3

Browse files
author
Chris Jackson
committed
[llvm-objcopy] Allow 'protected' visibility to be set when using
add-symbol Reviewers: Maskray, rupprecht Differential Revision: https://reviews.llvm.org/D65891 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368982 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 0b3ff9a commit dbd9cc3

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

docs/CommandGuide/llvm-objcopy.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ them.
160160
- `weak` = the symbol will have weak binding.
161161
- `default` = the symbol will have default visibility.
162162
- `hidden` = the symbol will have hidden visibility.
163+
- `protected` = the symbol will have protected visibility.
163164
- `file` = the symbol will be an `STT_FILE` symbol.
164165
- `section` = the symbol will be an `STT_SECTION` symbol.
165166
- `object` = the symbol will be an `STT_OBJECT` symbol.

test/tools/llvm-objcopy/ELF/add-symbol.test

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# RUN: llvm-objcopy --add-symbol='abs1=1' \
33
# RUN: --add-symbol='abs2=2,LoCaL,HiDdEn,FuNcTiOn' \
44
# RUN: --add-symbol='abs3=3,global,default,object' \
5+
# RUN: --add-symbol='abs4=4,global,protected,object' \
56
# RUN: --add-symbol='foo.cpp=0,file' \
67
# RUN: --add-symbol='=.text:0,section' \
78
# RUN: --add-symbol='data=.data:0x100,weak' \
@@ -58,14 +59,15 @@ ProgramHeaders:
5859
Sections:
5960
- Section: .data
6061

61-
# CHECK: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
62+
# CHECK: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
6263
# CHECK-NEXT: 1: 00000001 0 NOTYPE GLOBAL DEFAULT ABS abs1
6364
# CHECK-NEXT: 2: 00000002 0 FUNC LOCAL HIDDEN ABS abs2
6465
# CHECK-NEXT: 3: 00000003 0 OBJECT GLOBAL DEFAULT ABS abs3
65-
# CHECK-NEXT: 4: 00000000 0 FILE GLOBAL DEFAULT ABS foo.cpp
66-
# CHECK-NEXT: 5: 00001000 0 SECTION GLOBAL DEFAULT 1
67-
# CHECK-NEXT: 6: 00002100 0 NOTYPE WEAK DEFAULT 2 data
68-
# CHECK-NEXT: 7: 00001000 0 IFUNC GLOBAL DEFAULT 1 ifunc
66+
# CHECK-NEXT: 4: 00000004 0 OBJECT GLOBAL PROTECTED ABS abs4
67+
# CHECK-NEXT: 5: 00000000 0 FILE GLOBAL DEFAULT ABS foo.cpp
68+
# CHECK-NEXT: 6: 00001000 0 SECTION GLOBAL DEFAULT 1
69+
# CHECK-NEXT: 7: 00002100 0 NOTYPE WEAK DEFAULT 2 data
70+
# CHECK-NEXT: 8: 00001000 0 IFUNC GLOBAL DEFAULT 1 ifunc
6971

7072
# IGNORED: 1: 00000000 0 NOTYPE GLOBAL DEFAULT ABS dummy1
7173
# IGNORED-NEXT: 2: 00000000 0 NOTYPE GLOBAL DEFAULT ABS dummy2

tools/llvm-objcopy/CopyConfig.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ static Expected<NewSymbolInfo> parseNewSymbolInfo(StringRef FlagValue) {
232232
.CaseLower("weak", [&SI] { SI.Bind = ELF::STB_WEAK; })
233233
.CaseLower("default", [&SI] { SI.Visibility = ELF::STV_DEFAULT; })
234234
.CaseLower("hidden", [&SI] { SI.Visibility = ELF::STV_HIDDEN; })
235+
.CaseLower("protected", [&SI] { SI.Visibility = ELF::STV_PROTECTED; })
235236
.CaseLower("file", [&SI] { SI.Type = ELF::STT_FILE; })
236237
.CaseLower("section", [&SI] { SI.Type = ELF::STT_SECTION; })
237238
.CaseLower("object", [&SI] { SI.Type = ELF::STT_OBJECT; })

tools/llvm-objcopy/ObjcopyOpts.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ def adjust_start : JoinedOrSeparate<["--"], "adjust-start">,
214214

215215
defm add_symbol
216216
: Eq<"add-symbol", "Add new symbol <name> to .symtab. Accepted flags: "
217-
"global, local, weak, default, hidden, file, section, object, "
217+
"global, local, weak, default, hidden, protected, file, section, object, "
218218
"function, indirect-function. Accepted but ignored for "
219219
"compatibility: debug, constructor, warning, indirect, synthetic, "
220220
"unique-object, before.">,

0 commit comments

Comments
 (0)