summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-ar
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-04-03 14:53:42 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-04-03 14:53:42 +0000
commit6da44ad75d25d5d7089c66d7cd3f4f90cd70146c (patch)
tree4a0c32a0e9d75bb8005b9b7b3809b96dd63be7b6 /llvm/test/tools/llvm-ar
parentf5b181e16db70bb78fb7ac33f811ff23e2a80191 (diff)
downloadbcm5719-llvm-6da44ad75d25d5d7089c66d7cd3f4f90cd70146c.tar.gz
bcm5719-llvm-6da44ad75d25d5d7089c66d7cd3f4f90cd70146c.zip
[yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping.
Currently, YAML has the following syntax for describing the symbols: Symbols: Local: LocalSymbol1: ... LocalSymbol2: ... ... Global: GlobalSymbol1: ... Weak: ... GNUUnique: I.e. symbols are grouped by their bindings. That is not very convenient, because: It does not allow to set a custom binding, what can be useful for producing broken/special outputs for test cases. Adding a new binding would require to change a syntax (what we observed when added GNUUnique recently). It does not allow to change the order of the symbols in .symtab/.dynsym, i.e. currently all Local symbols are placed first, then Global, Weak and GNUUnique are following, but we are not able to change the order. It is not consistent. Binding is just one of the properties of the symbol, we do not group them by other properties. It makes the code more complex that it can be. This patch shows it can be simplified with the change performed. The patch changes the syntax to just: Symbols: Symbol1: ... Symbol2: ... ... With that, we are able to work with the binding field just like with any other symbol property. Differential revision: https://reviews.llvm.org/D60122 llvm-svn: 357595
Diffstat (limited to 'llvm/test/tools/llvm-ar')
-rw-r--r--llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml13
-rw-r--r--llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml13
-rw-r--r--llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml13
-rw-r--r--llvm/test/tools/llvm-ar/Inputs/elf.yaml5
4 files changed, 20 insertions, 24 deletions
diff --git a/llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml b/llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml
index 7ae9fd95a62..9c75630a42f 100644
--- a/llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml
+++ b/llvm/test/tools/llvm-ar/Inputs/add-lib1.yaml
@@ -20,11 +20,10 @@ Sections:
AddressAlign: 0x0000000000000001
Content: ''
Symbols:
- Global:
- - Name: lib1
- Index: SHN_ABS
- Value: 0x1234
- Local:
- - Name: '-'
- Type: STT_FILE
+ - Name: '-'
+ Type: STT_FILE
+ - Name: lib1
+ Index: SHN_ABS
+ Value: 0x1234
+ Binding: STB_GLOBAL
...
diff --git a/llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml b/llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml
index 8d224b95a4d..8027fff4f44 100644
--- a/llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml
+++ b/llvm/test/tools/llvm-ar/Inputs/add-lib2.yaml
@@ -20,11 +20,10 @@ Sections:
AddressAlign: 0x0000000000000001
Content: ''
Symbols:
- Global:
- - Name: lib2
- Index: SHN_ABS
- Value: 0x1234
- Local:
- - Name: '-'
- Type: STT_FILE
+ - Name: '-'
+ Type: STT_FILE
+ - Name: lib2
+ Index: SHN_ABS
+ Value: 0x1234
+ Binding: STB_GLOBAL
...
diff --git a/llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml b/llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml
index 0f1cfe7d806..9cc9dba8850 100644
--- a/llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml
+++ b/llvm/test/tools/llvm-ar/Inputs/add-lib3.yaml
@@ -20,11 +20,10 @@ Sections:
AddressAlign: 0x0000000000000001
Content: ''
Symbols:
- Global:
- - Name: lib3
- Index: SHN_ABS
- Value: 0x1234
- Local:
- - Name: '-'
- Type: STT_FILE
+ - Name: '-'
+ Type: STT_FILE
+ - Name: lib3
+ Index: SHN_ABS
+ Value: 0x1234
+ Binding: STB_GLOBAL
...
diff --git a/llvm/test/tools/llvm-ar/Inputs/elf.yaml b/llvm/test/tools/llvm-ar/Inputs/elf.yaml
index 2651e68f78f..b124b295b8a 100644
--- a/llvm/test/tools/llvm-ar/Inputs/elf.yaml
+++ b/llvm/test/tools/llvm-ar/Inputs/elf.yaml
@@ -20,7 +20,6 @@ Sections:
AddressAlign: 0x0000000000000001
Content: ''
Symbols:
- Local:
- - Name: '-'
- Type: STT_FILE
+ - Name: '-'
+ Type: STT_FILE
...
OpenPOWER on IntegriCloud