[llvm] r368982 - [llvm-objcopy] Allow 'protected' visibility to be set when using

Chris Jackson via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 15 02:45:09 PDT 2019


Author: chrisj
Date: Thu Aug 15 02:45:09 2019
New Revision: 368982

URL: http://llvm.org/viewvc/llvm-project?rev=368982&view=rev
Log:
[llvm-objcopy] Allow 'protected' visibility to be set when using
add-symbol

Reviewers: Maskray, rupprecht

Differential Revision: https://reviews.llvm.org/D65891

Modified:
    llvm/trunk/docs/CommandGuide/llvm-objcopy.rst
    llvm/trunk/test/tools/llvm-objcopy/ELF/add-symbol.test
    llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp
    llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td

Modified: llvm/trunk/docs/CommandGuide/llvm-objcopy.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/CommandGuide/llvm-objcopy.rst?rev=368982&r1=368981&r2=368982&view=diff
==============================================================================
--- llvm/trunk/docs/CommandGuide/llvm-objcopy.rst (original)
+++ llvm/trunk/docs/CommandGuide/llvm-objcopy.rst Thu Aug 15 02:45:09 2019
@@ -160,6 +160,7 @@ them.
  - `weak` = the symbol will have weak binding.
  - `default` = the symbol will have default visibility.
  - `hidden` = the symbol will have hidden visibility.
+ - `protected` = the symbol will have protected visibility.
  - `file` = the symbol will be an `STT_FILE` symbol.
  - `section` = the symbol will be an `STT_SECTION` symbol.
  - `object` = the symbol will be an `STT_OBJECT` symbol.

Modified: llvm/trunk/test/tools/llvm-objcopy/ELF/add-symbol.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objcopy/ELF/add-symbol.test?rev=368982&r1=368981&r2=368982&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-objcopy/ELF/add-symbol.test (original)
+++ llvm/trunk/test/tools/llvm-objcopy/ELF/add-symbol.test Thu Aug 15 02:45:09 2019
@@ -2,6 +2,7 @@
 # RUN: llvm-objcopy --add-symbol='abs1=1' \ 
 # RUN:              --add-symbol='abs2=2,LoCaL,HiDdEn,FuNcTiOn' \
 # RUN:              --add-symbol='abs3=3,global,default,object' \
+# RUN:              --add-symbol='abs4=4,global,protected,object' \
 # RUN:              --add-symbol='foo.cpp=0,file' \
 # RUN:              --add-symbol='=.text:0,section' \
 # RUN:              --add-symbol='data=.data:0x100,weak' \
@@ -58,14 +59,15 @@ ProgramHeaders:
     Sections:
       - Section: .data
 
-# CHECK:      0: 00000000 0 NOTYPE LOCAL DEFAULT UND 
+# CHECK:      0: 00000000 0 NOTYPE LOCAL DEFAULT UND
 # CHECK-NEXT: 1: 00000001 0 NOTYPE GLOBAL DEFAULT ABS abs1
 # CHECK-NEXT: 2: 00000002 0 FUNC LOCAL HIDDEN ABS abs2
 # CHECK-NEXT: 3: 00000003 0 OBJECT GLOBAL DEFAULT ABS abs3
-# CHECK-NEXT: 4: 00000000 0 FILE GLOBAL DEFAULT ABS foo.cpp
-# CHECK-NEXT: 5: 00001000 0 SECTION GLOBAL DEFAULT 1 
-# CHECK-NEXT: 6: 00002100 0 NOTYPE WEAK DEFAULT 2 data
-# CHECK-NEXT: 7: 00001000 0 IFUNC GLOBAL DEFAULT 1 ifunc
+# CHECK-NEXT: 4: 00000004 0 OBJECT GLOBAL PROTECTED ABS abs4
+# CHECK-NEXT: 5: 00000000 0 FILE GLOBAL DEFAULT ABS foo.cpp
+# CHECK-NEXT: 6: 00001000 0 SECTION GLOBAL DEFAULT 1
+# CHECK-NEXT: 7: 00002100 0 NOTYPE WEAK DEFAULT 2 data
+# CHECK-NEXT: 8: 00001000 0 IFUNC GLOBAL DEFAULT 1 ifunc
 
 # IGNORED:       1: 00000000 0 NOTYPE GLOBAL DEFAULT ABS dummy1
 # IGNORED-NEXT:  2: 00000000 0 NOTYPE GLOBAL DEFAULT ABS dummy2

Modified: llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp?rev=368982&r1=368981&r2=368982&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp (original)
+++ llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp Thu Aug 15 02:45:09 2019
@@ -232,6 +232,7 @@ static Expected<NewSymbolInfo> parseNewS
             .CaseLower("weak", [&SI] { SI.Bind = ELF::STB_WEAK; })
             .CaseLower("default", [&SI] { SI.Visibility = ELF::STV_DEFAULT; })
             .CaseLower("hidden", [&SI] { SI.Visibility = ELF::STV_HIDDEN; })
+            .CaseLower("protected", [&SI] { SI.Visibility = ELF::STV_PROTECTED; })
             .CaseLower("file", [&SI] { SI.Type = ELF::STT_FILE; })
             .CaseLower("section", [&SI] { SI.Type = ELF::STT_SECTION; })
             .CaseLower("object", [&SI] { SI.Type = ELF::STT_OBJECT; })

Modified: llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td?rev=368982&r1=368981&r2=368982&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td (original)
+++ llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td Thu Aug 15 02:45:09 2019
@@ -214,7 +214,7 @@ def adjust_start : JoinedOrSeparate<["--
 
 defm add_symbol
     : Eq<"add-symbol", "Add new symbol <name> to .symtab. Accepted flags: "
-         "global, local, weak, default, hidden, file, section, object, "
+         "global, local, weak, default, hidden, protected, file, section, object, "
          "function, indirect-function. Accepted but ignored for "
          "compatibility: debug, constructor, warning, indirect, synthetic, "
          "unique-object, before.">,




More information about the llvm-commits mailing list