diff options
author | Hans-Peter Nilsson <hp@bitrange.com> | 2020-07-15 06:22:28 +0200 |
---|---|---|
committer | Hans-Peter Nilsson <hp@bitrange.com> | 2020-07-15 06:22:28 +0200 |
commit | a8a48c756c0da3a49008662e14ae582764ddd0bb (patch) | |
tree | a2f68559fd454332a0692c914aaaaeee917e6d17 /ld | |
parent | 054a0959265eb89210626b6f2d84b93b82ef7ae9 (diff) | |
download | gdb-a8a48c756c0da3a49008662e14ae582764ddd0bb.zip gdb-a8a48c756c0da3a49008662e14ae582764ddd0bb.tar.gz gdb-a8a48c756c0da3a49008662e14ae582764ddd0bb.tar.bz2 |
mmix bfd: fix bfd_assert for R_MMIX_PUSHJ_STUBBABLE against undef'd symbol
Spotted when inspecting gcc testsuite logs, but this already is
covered by the ld-mmix testsuite, it's just that the assert is ignored
since the regexp match is for a substring and not anchored.
With the anchors added but not the bugfix, the ld.log shows that the
asserts cause a non-match as intended:
Executing on host: sh -c {./ld-new -LX/src/ld/testsuite/ld-mmix -m elf64mmix -o tmpdir/dump tmpdir/undef-2.o tmpdir/start.o 2>&1} /dev/null dump.tmp (timeout = 300)
./ld-new: BFD (GNU Binutils) 2.34.50.20200629 assertion fail X/src/bfd/elf64-mmix.c:2845
./ld-new: BFD (GNU Binutils) 2.34.50.20200629 assertion fail X/src/bfd/elf64-mmix.c:2845
./ld-new: BFD (GNU Binutils) 2.34.50.20200629 assertion fail X/src/bfd/elf64-mmix.c:2845
./ld-new: tmpdir/undef-2.o:(.text+0x0): undefined reference to `undefd'
failed with: <./ld-new: BFD (GNU Binutils) 2.34.50.20200629 assertion fail X/src/bfd/elf64-mmix.c:2845
./ld-new: BFD (GNU Binutils) 2.34.50.20200629 assertion fail X/src/bfd/elf64-mmix.c:2845
./ld-new: BFD (GNU Binutils) 2.34.50.20200629 assertion fail X/src/bfd/elf64-mmix.c:2845
./ld-new: tmpdir/undef-2.o:(.text+0x0): undefined reference to `undefd'>, expected: <\A[^\n\r]*undefined reference to `undefd'\Z>
FAIL: ld-mmix/undef-2
Gone with the fix of course, leaving just the intended "undefined
reference" like.
I'm not going to add anchors manually for all the "error:" strings in
the test-suite, not even in the mmix parts. Sorry, but I'll just do
it for *these* specific undefined-reference tests.
Just a thought: maybe the run_dump_test "error:" string should
*automatically* get anchor marks prepended and appended for a single
line match as in the patch, "\A[^\n\r]*" prepended and \Z appended
unless either anchor mark or \r or \n is present in the regexp?
Committed.
bfd:
* elf64-mmix.c (mmix_elf_relax_section): Improve accounting for
R_MMIX_PUSHJ_STUBBABLE relocs against undefined symbols.
ld/testsuite:
* testsuite/ld-mmix/undef-1.d, testsuite/ld-mmix/undef-1m.d,
testsuite/ld-mmix/undef-2.d, testsuite/ld-mmix/undef-2m.d: Add
start- and end-anchors to error-string to match just a
single-line error-message.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-mmix/undef-1.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-mmix/undef-1m.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-mmix/undef-2.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-mmix/undef-2m.d | 2 |
5 files changed, 11 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 98d10c0..b667566 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2020-07-15 Hans-Peter Nilsson <hp@bitrange.com> + + * testsuite/ld-mmix/undef-1.d, testsuite/ld-mmix/undef-1m.d, + testsuite/ld-mmix/undef-2.d, testsuite/ld-mmix/undef-2m.d: Add + start- and end-anchors to error-string to match just a + single-line error-message. + 2020-07-13 Alan Modra <amodra@gmail.com> * testsuite/ld-scripts/default-script1.d: Don't skip, xfail diff --git a/ld/testsuite/ld-mmix/undef-1.d b/ld/testsuite/ld-mmix/undef-1.d index fb8c7ee..ad8d757 100644 --- a/ld/testsuite/ld-mmix/undef-1.d +++ b/ld/testsuite/ld-mmix/undef-1.d @@ -1,4 +1,4 @@ #source: undef-1.s #source: start.s #ld: -m elf64mmix -#error: undefined reference to `regvar' +#error: \A[^\n\r]*undefined reference to `regvar'\Z diff --git a/ld/testsuite/ld-mmix/undef-1m.d b/ld/testsuite/ld-mmix/undef-1m.d index 001d7f6..e747e50 100644 --- a/ld/testsuite/ld-mmix/undef-1m.d +++ b/ld/testsuite/ld-mmix/undef-1m.d @@ -1,4 +1,4 @@ #source: undef-1.s #source: start.s #ld: -m mmo -#error: undefined reference to `regvar' +#error: \A[^\n\r]*undefined reference to `regvar'\Z diff --git a/ld/testsuite/ld-mmix/undef-2.d b/ld/testsuite/ld-mmix/undef-2.d index 52844db..2dc2b4e 100644 --- a/ld/testsuite/ld-mmix/undef-2.d +++ b/ld/testsuite/ld-mmix/undef-2.d @@ -2,4 +2,4 @@ #source: start.s #as: -x #ld: -m elf64mmix -#error: undefined reference to `undefd' +#error: \A[^\n\r]*undefined reference to `undefd'\Z diff --git a/ld/testsuite/ld-mmix/undef-2m.d b/ld/testsuite/ld-mmix/undef-2m.d index aa0becc..7eb3c67 100644 --- a/ld/testsuite/ld-mmix/undef-2m.d +++ b/ld/testsuite/ld-mmix/undef-2m.d @@ -2,4 +2,4 @@ #source: start.s #as: -x #ld: -m mmo -#error: undefined reference to `undefd' +#error: \A[^\n\r]*undefined reference to `undefd'\Z |