Also disallow global alias of common symbol
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 11 Aug 2017 14:41:51 +0000 (07:41 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 11 Aug 2017 14:42:02 +0000 (07:42 -0700)
commit76db0a2e171d2c6780e0388840e3a10ffe7e9ee2
tree189b45638210ddc041cd41d239c317fee36b6e32
parentde7985c3cca1358b21b49a9872455e2032f48ee3
Also disallow global alias of common symbol

We can't create alias of common symbol.  Local alias of common symbol has
been disallowed.  But global alias of common symbol is disallowed when the
common symbol is seen first and silently dropped otherwise.  This patch
disallows alias of common symbol in all cases.

gas/

PR gas/21667
* read.c (pseudo_set): Update error message for alias of common
symbol.
* write.c (write_object_file): Disallow both local and global
aliases of common symbol.
* testsuite/gas/elf/common5a.d: New file.
* testsuite/gas/elf/common5a.l: Likewise.
* testsuite/gas/elf/common5a.s: Likewise.
* testsuite/gas/elf/common5b.d: Likewise.
* testsuite/gas/elf/common5b.l: Likewise.
* testsuite/gas/elf/common5b.s: Likewise.
* testsuite/gas/elf/common5c.d: Likewise.
* testsuite/gas/elf/common5c.s: Likewise.
* testsuite/gas/elf/common5d.d: Likewise.
* testsuite/gas/elf/common5d.s: Likewise.
* testsuite/gas/elf/elf.exp: Run common5a, common5b, common5c
and common5d.
14 files changed:
gas/ChangeLog
gas/read.c
gas/testsuite/gas/elf/common5a.d [new file with mode: 0644]
gas/testsuite/gas/elf/common5a.l [new file with mode: 0644]
gas/testsuite/gas/elf/common5a.s [new file with mode: 0644]
gas/testsuite/gas/elf/common5b.d [new file with mode: 0644]
gas/testsuite/gas/elf/common5b.l [new file with mode: 0644]
gas/testsuite/gas/elf/common5b.s [new file with mode: 0644]
gas/testsuite/gas/elf/common5c.d [new file with mode: 0644]
gas/testsuite/gas/elf/common5c.s [new file with mode: 0644]
gas/testsuite/gas/elf/common5d.d [new file with mode: 0644]
gas/testsuite/gas/elf/common5d.s [new file with mode: 0644]
gas/testsuite/gas/elf/elf.exp
gas/write.c