summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorJordan Rupprecht <rupprecht@google.com>2018-11-01 17:26:36 +0000
committerJordan Rupprecht <rupprecht@google.com>2018-11-01 17:26:36 +0000
commitb47475c058b1da5b8ff8aba4e1fd9bb9a9871882 (patch)
tree46890b206f9704b3b5b8ec53680272418f454ac6 /llvm/test
parentab205a31d40eafa0103bddc0abac9e3cfd0041ed (diff)
downloadbcm5719-llvm-b47475c058b1da5b8ff8aba4e1fd9bb9a9871882.tar.gz
bcm5719-llvm-b47475c058b1da5b8ff8aba4e1fd9bb9a9871882.zip
[llvm-objcopy] Don't apply --localize flags to common symbols
Summary: --localize-symbol and --localize-hidden will currently localize common symbols. GNU objcopy will not localize these symbols even when explicitly requested, which seems reasonable; common symbols should always be global so they can be merged during linking. See PR39461 Reviewers: jakehehrlich, jhenderson, alexshap, MaskRay, espindola Reviewed By: jakehehrlich, jhenderson, alexshap, MaskRay Subscribers: emaste, arichardson, alexshap, MaskRay, llvm-commits Differential Revision: https://reviews.llvm.org/D53782 llvm-svn: 345856
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/tools/llvm-objcopy/localize-hidden.test17
-rw-r--r--llvm/test/tools/llvm-objcopy/localize.test21
2 files changed, 37 insertions, 1 deletions
diff --git a/llvm/test/tools/llvm-objcopy/localize-hidden.test b/llvm/test/tools/llvm-objcopy/localize-hidden.test
index 92577075f07..05d747b800b 100644
--- a/llvm/test/tools/llvm-objcopy/localize-hidden.test
+++ b/llvm/test/tools/llvm-objcopy/localize-hidden.test
@@ -55,6 +55,12 @@ Symbols:
Value: 0x2006
Size: 2
Visibility: STV_HIDDEN
+ - Name: hiddenGlobalCommon
+ Type: STT_OBJECT
+ Index: SHN_COMMON
+ Value: 0x2006
+ Size: 2
+ Visibility: STV_HIDDEN
- Name: undefGlobal
Type: STT_FUNC
Size: 8
@@ -142,6 +148,17 @@ Symbols:
#CHECK-NEXT: Section: .text
#CHECK-NEXT: }
#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name: hiddenGlobalCommon
+#CHECK-NEXT: Value: 0x2006
+#CHECK-NEXT: Size: 2
+#CHECK-NEXT: Binding: Global
+#CHECK-NEXT: Type: Object
+#CHECK-NEXT: Other [
+#CHECK-NEXT: STV_HIDDEN
+#CHECK-NEXT: ]
+#CHECK-NEXT: Section: Common (0xF
+#CHECK-NEXT: }
+#CHECK-NEXT: Symbol {
#CHECK-NEXT: Name: undefGlobal
#CHECK-NEXT: Value: 0x0
#CHECK-NEXT: Size: 8
diff --git a/llvm/test/tools/llvm-objcopy/localize.test b/llvm/test/tools/llvm-objcopy/localize.test
index d52852ac673..2e2d6ccd6bf 100644
--- a/llvm/test/tools/llvm-objcopy/localize.test
+++ b/llvm/test/tools/llvm-objcopy/localize.test
@@ -1,5 +1,10 @@
# RUN: yaml2obj %s > %t
-# RUN: llvm-objcopy --localize-symbol Global -L Local -L Weak %t %t2
+# RUN: llvm-objcopy \
+# RUN: --localize-symbol Global \
+# RUN: -L Local \
+# RUN: -L Weak \
+# RUN: -L GlobalCommon \
+# RUN: %t %t2
# RUN: llvm-readobj -symbols %t2 | FileCheck %s
!ELF
@@ -40,6 +45,11 @@ Symbols:
Size: 8
Section: .text
Value: 0x1010
+ - Name: GlobalCommon
+ Type: STT_OBJECT
+ Index: SHN_COMMON
+ Value: 0x2006
+ Size: 2
#CHECK: Symbols [
#CHECK-NEXT: Symbol {
@@ -78,4 +88,13 @@ Symbols:
#CHECK-NEXT: Other: 0
#CHECK-NEXT: Section: .text
#CHECK-NEXT: }
+#CHECK-NEXT: Symbol {
+#CHECK-NEXT: Name: GlobalCommon
+#CHECK-NEXT: Value: 0x2006
+#CHECK-NEXT: Size: 2
+#CHECK-NEXT: Binding: Global
+#CHECK-NEXT: Type: Object
+#CHECK-NEXT: Other: 0
+#CHECK-NEXT: Section: Common (0xF
+#CHECK-NEXT: }
#CHECK-NEXT:]
OpenPOWER on IntegriCloud