diff options
| author | Jordan Rupprecht <rupprecht@google.com> | 2018-11-01 17:26:36 +0000 |
|---|---|---|
| committer | Jordan Rupprecht <rupprecht@google.com> | 2018-11-01 17:26:36 +0000 |
| commit | b47475c058b1da5b8ff8aba4e1fd9bb9a9871882 (patch) | |
| tree | 46890b206f9704b3b5b8ec53680272418f454ac6 /llvm/test | |
| parent | ab205a31d40eafa0103bddc0abac9e3cfd0041ed (diff) | |
| download | bcm5719-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.test | 17 | ||||
| -rw-r--r-- | llvm/test/tools/llvm-objcopy/localize.test | 21 |
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:] |

