Browse Source

libctf, ld: fix data symbol test with newer GCC

GCC 11+ spots that the extern var_1 and var_666 declarations in this
test are unused, and removes them, thus stopping them from appearing as
conflicted data symbols and rendering the test pointless.  Use them in a
function unique to this TU to prevent them from being eliminated.

ld/ChangeLog
2021-01-19  Nick Alcock  <nick.alcock@oracle.com>

	* testsuite/ld-ctf/data-func-2.c: Stop removal of the extern foo_t
	symbols by the optimizer.
	* testsuite/ld-ctf/data-func-conflicted.d: Adjust accordingly.
binutils-2_37-branch
Nick Alcock 6 years ago
parent
commit
c98de297b3
  1. 6
      ld/ChangeLog
  2. 4
      ld/testsuite/ld-ctf/data-func-2.c
  3. 4
      ld/testsuite/ld-ctf/data-func-conflicted.d

6
ld/ChangeLog

@ -1,3 +1,9 @@
2021-01-19 Nick Alcock <nick.alcock@oracle.com>
* testsuite/ld-ctf/data-func-2.c: Stop removal of the extern foo_t
symbols by the optimizer.
* testsuite/ld-ctf/data-func-conflicted.d: Adjust accordingly.
2021-01-19 Nelson Chu <nelson.chu@sifive.com>
* testsuite/ld-elf/elf.exp (riscv_little_endian): Added. Return true

4
ld/testsuite/ld-ctf/data-func-2.c

@ -3,3 +3,7 @@ typedef char foo_t;
/* Conflicting, and indexed. */
extern foo_t var_1;
extern foo_t *var_666;
int other_func(foo_t *);
int ignore (void) { other_func (&var_1); other_func (var_666); }

4
ld/testsuite/ld-ctf/data-func-conflicted.d

@ -14,9 +14,9 @@ Contents of CTF section \.ctf:
Version: 4 \(CTF_VERSION_3\)
#...
Data object section: .* \(0xc bytes\)
Function info section: .* \(0x40 bytes\)
Function info section: .* \(0x44 bytes\)
Object index section: .* \(0xc bytes\)
Type section: .* \(0xe8 bytes\)
Type section: .* \(0xf4 bytes\)
String section: .*
#...
Data objects:

Loading…
Cancel
Save