This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch/rfc] Fix gdb/1426: osabi initialization race condition


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]