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.