This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: GDB 8.2.90 available for testing
- From: Andrew Burgess <andrew dot burgess at embecosm dot com>
- To: Jim Wilson <jimw at sifive dot com>
- Cc: Joel Brobecker <brobecker at adacore dot com>, gdb-patches at sourceware dot org
- Date: Mon, 4 Mar 2019 11:14:54 +0000
- Subject: Re: GDB 8.2.90 available for testing
- References: <20190227055112.4A5E782D7B@joel.gnat.com> <332e186f-0c04-ab6d-754e-bf14d2981923@sifive.com>
* Jim Wilson <jimw@sifive.com> [2019-02-27 14:05:23 -0800]:
> On 2/26/19 9:51 PM, Joel Brobecker wrote:
> > I have just finished creating the gdb-8.2.90 pre-release.
> > Please give it a test if you can and report any problems you might find.
>
> On a riscv64-linux system (HiFive Unleashed w/ Fedora Core 29), without an
> Ada compiler in my path, I get
>
> === gdb Summary ===
>
> # of expected passes 50264
> # of unexpected failures 2297
> # of expected failures 57
> # of unknown successes 3
> # of known failures 79
> # of untested testcases 132
> # of unresolved testcases 110
> # of unsupported tests 359
>
> which looks OK. There was no riscv-linux native support in gdb-8.2 so this
> is a major improvement over the last one. I did used to have better results
> though. I'm seeing
>
> hifiveu017:1040$ grep ^FAIL gdb.sum | grep infcall | wc
> 878 8059 103059
>
> and I think that these mostly used to work, since I used to have about 1500
> failures. I think something in the last 3 months broke this, but I haven't
> had time to track it down. I see stuff like this in the log files
>
> p/d check_arg_struct_01_01 (ref_val_struct_01_01)^M
> ../../binutils-gdb/gdb/riscv-tdep.c:2119: internal-error: void
> riscv_call_arg_struct(riscv_arg_info*, riscv_call_info*): Assertion
> `TYPE_LENGTH (ainfo->type) == TYPE_LENGTH (sinfo.field_type (0))' failed.^M
> A problem internal to GDB has been detected,^M
> further debugging may prove unreliable.^M
> Quit this debugging session? (y or n) FAIL:
> gdb.base/infcall-nested-structs.exp: l=c++: types-tfc: p/d
> check_arg_struct_01_01 (ref_val_struct_01_01) (GDB internal error)
I don't think these are regressions, just new tests that expose a bug
that was present since the initial upstreaming. The issue relates to
the difference in size between an empty struct in gcc and g++ (0 vs 1
respectively), and how this effects argument passing.
I have a fix in progress, but it will probably be a couple of days
before its ready to post. I guess we can back-port to 8.3 if I get
the patch ready soon. I'm not too worried if it doesn't make it in
though, if feels like an edge case.
Thanks,
Andrew