This is the mail archive of the gdb@sourceware.cygnus.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]

Disabling lin-thread.c module


Since glibc-2.1.3 was released with a bogus definition for
prfpregset_t (at least for Linux/i386[1]), we'll have to take some
measures to make sure that GDB-5.0 will work with glibc-2.1.3.

I see three possibilities:

1. Disable the lin-thread.c module by default, and provide a switch
   --enable-thread-db to enable the module, such that people can build
   the module if the headers have been fixed (for example when
   glibc-2.1.4 has been installed).

2. Provide the same switch, but use an autoconf test to check whether
   the prfpregset_t type is broken, and enable the module based on the
   result of that test.

3. Use an autoconf test to check whether the prfpregset_t type is
   broken, and let GDB work around it.

I'm inclined to implement option 3, since that means that the
lin-thread.c code will be somewhat more thoroughly tested, but there
may be some drawbacks:

 * A libthread_db built with the bogus prfpregset_t definition has a
   minor problem: If the floating-point registers could not be
   fetched, the structure isn't completely zeroed out.

 * I need to add some uglification of GDB's code to make this work.

 * Since nobody did a lot of testing of GDB with multithreaded
   programs, it's largely unknown whether there are cases that
   lin-thread.c can handle and linux-thread.c cannot handle, and the
   other way around.  I know that lin-thread.c cannot handle exiting
   threads, but linux-thread.c seems to mishandle those too.  Both
   modules pass the regression tests once the prfpregset_t problem is
   fixed.

Mark

[1] I'm not sure about the status of Linux/alpha.

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