This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [patch/rfc] Fix gdb/1426: osabi initialization race condition
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Andrew Cagney <ac131313 at redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Fri, 24 Oct 2003 00:12:07 -0400
- Subject: Re: [patch/rfc] Fix gdb/1426: osabi initialization race condition
- References: <3F98921A.9040302@redhat.com>
On Thu, Oct 23, 2003 at 10:44:42PM -0400, Andrew Cagney wrote:
> Hello,
>
> ref: http://sources.redhat.com/gdb/bugs/1426 for details.
>
> The attached implements the "hack" suggested in tdep/1426 to work around
> a bogus error message:
>
> A handler for the OS ABI "GNU/Linux" is not built into this
> configuration of GDB. Attempting to continue with the default
> rs6000:6000 settingsGNU gdb 2003-10-23-cvs
> Copyright 2003 Free Software Foundation, Inc.
> ...
>
> that appears on some platforms during startup.
>
> Baring comment, I'll commit this in a few days.
>
> Andrew
This is a rather unfortunate hack.
This is the way it is now, I think:
- first architecture is created
- per-file init:
- then the target's tdep file creates the osabi
But you've changed it to:
- application startup
- osabi is set to uninitialized
- first architecture is created
- per-file init
- then osabi.c sets user_osabi_default
- then the target's tdep file creates the osabi
(or these two switched, no difference)
This means that if per-file initialization doesn't happen then the
default osabi is never set. But one of the points of setting a
compile-time default OS ABI was so that even if not given a file, GDB
would get the right default. This patch will break using gdbserver on
an arm-linux target without loading a file into GDB (unless set osabi
is used, of course).
Also, one thing I couldn't figure out from the code - why does this
happen on some targets and not others?
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer