* RFA: Support Windows extended error numbers in safe_strerror
@ 2006-02-03 21:55 Daniel Jacobowitz
2006-02-03 23:25 ` Mark Kettenis
` (3 more replies)
0 siblings, 4 replies; 98+ messages in thread
From: Daniel Jacobowitz @ 2006-02-03 21:55 UTC (permalink / raw)
To: gdb-patches
This is an improved version of a patch Mark Mitchell submitted last
year. If you give strerror() anything above 42 (sys_nerr) on Windows,
it gives you back "Unknown error" - particularly unfortunate since
WSAECONNREFUSED is way above there, so connecting to a closed socket
will give you a generic error message. This patch lets us try an
OS-specific interface to fetch an error string.
[Actually you need my next patch too to get the connection refused message;
right now you'll get a timeout.]
Any comments on this patch?
--
Daniel Jacobowitz
CodeSourcery
2006-02-03 Daniel Jacobowitz <dan@codesourcery.com>
* utils.c (safe_strerror): Try to use FormatMessage for otherwise
unknown messages on Windows.
Index: src/gdb/utils.c
===================================================================
--- src.orig/gdb/utils.c 2006-02-03 15:13:03.000000000 -0500
+++ src/gdb/utils.c 2006-02-03 15:16:24.000000000 -0500
@@ -1,8 +1,8 @@
/* General utility routines for GDB, the GNU debugger.
Copyright (C) 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
- 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free
- Software Foundation, Inc.
+ 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
This file is part of GDB.
@@ -36,6 +36,10 @@
#include <pc.h>
#endif
+#ifdef USE_WIN32API
+#include <windows.h>
+#endif
+
/* SunOS's curses.h has a '#define reg register' in it. Thank you Sun. */
#ifdef reg
#undef reg
@@ -847,7 +851,34 @@ safe_strerror (int errnum)
{
char *msg;
- msg = strerror (errnum);
+#ifdef USE_WIN32API
+ /* On Windows, strerror never returns NULL, but it returns a useless
+ string for anything above sys_nerr. Try a little harder to find
+ a system-provided error message in that case. */
+ if (errnum >= sys_nerr)
+ {
+ static char *buffer;
+
+ if (buffer)
+ LocalFree (buffer);
+
+ if (FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER
+ | FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL, errnum,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ (LPTSTR) &buffer, 0, NULL) != 0)
+ {
+ if (strcmp (buffer + strlen (buffer) - 3, ".\r\n") == 0)
+ buffer[strlen (buffer) - 3] = '\0';
+ return buffer;
+ }
+ else
+ msg = NULL;
+ }
+ else
+#endif
+ msg = strerror (errnum);
+
if (msg == NULL)
{
static char buf[32];
^ permalink raw reply [flat|nested] 98+ messages in thread* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 21:55 RFA: Support Windows extended error numbers in safe_strerror Daniel Jacobowitz @ 2006-02-03 23:25 ` Mark Kettenis 2006-02-03 23:39 ` Christopher Faylor ` (2 more replies) 2006-02-04 11:58 ` Eli Zaretskii ` (2 subsequent siblings) 3 siblings, 3 replies; 98+ messages in thread From: Mark Kettenis @ 2006-02-03 23:25 UTC (permalink / raw) To: drow; +Cc: gdb-patches > Date: Fri, 3 Feb 2006 16:54:55 -0500 > From: Daniel Jacobowitz <drow@false.org> > > This is an improved version of a patch Mark Mitchell submitted last > year. If you give strerror() anything above 42 (sys_nerr) on Windows, > it gives you back "Unknown error" - particularly unfortunate since > WSAECONNREFUSED is way above there, so connecting to a closed socket > will give you a generic error message. This patch lets us try an > OS-specific interface to fetch an error string. > > [Actually you need my next patch too to get the connection refused message; > right now you'll get a timeout.] > > Any comments on this patch? I think this is ugly. When the win32 support was added, we were told that only minimal changes were necessary. But people keep pushing #ifdef EVIL_CLOSED_SOURCE_PLATFORM_FROM_REDMOND patches. GDB is written for POSIX systems. It's clear that Windows isn't even remotely POSIX compliant. Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 23:25 ` Mark Kettenis @ 2006-02-03 23:39 ` Christopher Faylor 2006-02-04 3:27 ` Daniel Jacobowitz 2006-02-04 10:03 ` Eli Zaretskii 2006-02-04 1:06 ` Jim Blandy 2006-03-02 0:53 ` Michael Snyder 2 siblings, 2 replies; 98+ messages in thread From: Christopher Faylor @ 2006-02-03 23:39 UTC (permalink / raw) To: gdb-patches On Sat, Feb 04, 2006 at 12:25:19AM +0100, Mark Kettenis wrote: >> Date: Fri, 3 Feb 2006 16:54:55 -0500 >> From: Daniel Jacobowitz <drow@false.org> >> >> This is an improved version of a patch Mark Mitchell submitted last >> year. If you give strerror() anything above 42 (sys_nerr) on Windows, >> it gives you back "Unknown error" - particularly unfortunate since >> WSAECONNREFUSED is way above there, so connecting to a closed socket >> will give you a generic error message. This patch lets us try an >> OS-specific interface to fetch an error string. >> >> [Actually you need my next patch too to get the connection refused message; >> right now you'll get a timeout.] >> >> Any comments on this patch? > >I think this is ugly. When the win32 support was added, we were told >that only minimal changes were necessary. But people keep pushing >#ifdef EVIL_CLOSED_SOURCE_PLATFORM_FROM_REDMOND patches. > >GDB is written for POSIX systems. It's clear that Windows isn't even >remotely POSIX compliant. Hmm. As it turns out, I have some email sitting in my "to be sent" folder that I've held back on sending which is tangentially related to this. The gist of the email is that I'm not happy having to support windows-specific workarounds in gdb while standing on my head in cygwin-land to make sure that as few workarounds as possible are needed for programs like gdb. I'm concerned that the MinGW patches are going to eventually start encroaching on win32-nat.c (which we've already seen). I don't *want* to litter that file with any special non-cygwin accommodations. I feel hypocritical here because I've suggested several times that the MinGW people should be sending their patches to the gdb list but now that that day is here, I find that I have no interest in worrying about windows-native issues at all. So, my email suggested that if MinGW is important to gdb then I probably shouldn't be the maintainer for Windows. I do understand why people like Codesourcery want a native version of gdb. That doesn't mean that I have to happily support it, though. So, I'm not sure what to do here. I agree with Mark, though (and with Ulrich Drepper when he made points about non-POSIX systems in his blog). cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 23:39 ` Christopher Faylor @ 2006-02-04 3:27 ` Daniel Jacobowitz 2006-02-04 6:29 ` Jim Blandy ` (2 more replies) 2006-02-04 10:03 ` Eli Zaretskii 1 sibling, 3 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-04 3:27 UTC (permalink / raw) To: gdb-patches I have some general responses to this thread so far, which unfortunately hasn't addressed the actual patch at all but the overall goal of working on MinGW32 i.e. Windows-without-Cygwin. On Fri, Feb 03, 2006 at 06:39:35PM -0500, Christopher Faylor wrote: > On Sat, Feb 04, 2006 at 12:25:19AM +0100, Mark Kettenis wrote: > >I think this is ugly. When the win32 support was added, we were told > >that only minimal changes were necessary. But people keep pushing > >#ifdef EVIL_CLOSED_SOURCE_PLATFORM_FROM_REDMOND patches. > > > >GDB is written for POSIX systems. It's clear that Windows isn't even > >remotely POSIX compliant. I'm sorry you feel the need to use terms like "evil" to deal with a real operating system that real people use. I don't know who said "only minimal changes were necessary" but I'm sure they were making their best guess at the time. I don't know why you say that GDB was written for POSIX systems. I haven't been around long enough in GNU land and GDB land to know what it was "written for", but I'd wager from changelogs that GDB was written for SunOS and other proprietary OS's available at the time, and written with the eventual goal of working on GNU systems. Neither of which was a particularly good map onto what we now think of as POSIX. I'd say that GDB was written for the hosts that were interesting at the time. Many of which happened to have a BSD heritage. > Hmm. As it turns out, I have some email sitting in my "to be sent" > folder that I've held back on sending which is tangentially related > to this. > > The gist of the email is that I'm not happy having to support > windows-specific workarounds in gdb while standing on my head in > cygwin-land to make sure that as few workarounds as possible are needed > for programs like gdb. I'm going to make a couple of points here. They're mostly aimed at the GDB list, not at Chris - who's well aware of all of them already. 1. Cygwin is an amazing, and amazingly useful, piece of work. 2. Cygwin is not an FSF project. 3. Relying on Cygwin to support Windows is awkward for a whole lot of reasons, which are in many cases accepted as good ones, and I hope that I don't need to rehash right now. But I will if I have to. Just ask. That's why some people do it with Cygwin and some people do it without. CodeSourcery has both decided on our own (based on the technical merits) and heard unequivocally from our customers that relying on Cygwin just isn't going to cut it. What I'd _love_ to do is refactor the bits of Cygwin which we need, which are considerably smaller than the whole of Cygwin, so that we could link them directly into GDB and not have to worry about it any more. Given the copyright status of Cygwin, however, I think this is a non-starter. I'm not even sure whether it would fit into the design of Cygwin, or end up rewriting much of it anyway. It might be possible to create a minimalist set of POSIX wrapper functions for Windows which were nowhere near as complete as Cygwin, were built on top of mingw32, and were moderately more transparent to GDB. But I don't think they'd be of much general use besides for GDB, because there's real limits to how good an emulation you can manage without - surprise! - reinventing Cygwin! See #1 above, please. > I'm concerned that the MinGW patches are going to eventually start > encroaching on win32-nat.c (which we've already seen). I don't *want* > to litter that file with any special non-cygwin accommodations. How bad do you really expect this to be? I've never seen the native MinGW debugging patches; I don't intend to take a look at them, since right now we (i.e. in my day job) only need Windows hosting and not Windows native debugging. But I'd expect that changes would either be small (if done right), or else relatively easy to break out into a separate file using this neat target inheritance concept we put so much effort into. The question of Windows support is not going to go away at any point in the foreseeable future. If the GDB community is going to throw up its hands and say ugh, well, I'd be pretty disappointed. And CodeSourcery would be maintaining a branch with these patches for all of that foreseeable future, and shipping it. We're trying as hard as we can to not do that - it's not good for us, it's not good for GDB, it's not good for users who would like to build GDB releases on Windows. I'm sorry a lot of you find the changes either morally or aesthetically objectionable. I'm not entirely sure which it is. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 3:27 ` Daniel Jacobowitz @ 2006-02-04 6:29 ` Jim Blandy 2006-02-04 10:33 ` Eli Zaretskii 2006-02-04 10:59 ` Eli Zaretskii 2006-02-04 14:35 ` Mark Kettenis 2 siblings, 1 reply; 98+ messages in thread From: Jim Blandy @ 2006-02-04 6:29 UTC (permalink / raw) To: gdb-patches On 2/3/06, Daniel Jacobowitz <drow@false.org> wrote: > I'm sorry a lot of you find the changes either morally or aesthetically > objectionable. I'm not entirely sure which it is. When I worked on Emacs from 1990, that was before the autoconf era, and the code was covered with #ifdef blocks for various architectures and operating systems. I found them extremely irritating to work with, since it took careful examination to figure out exactly what invariants each branch of the #if expected from the surrounding code. It didn't help that I didn't usually have documentation handy for whatever OS-specific bits that #if branch was trying to use. So I find that kind of thing confusing, and it slows me down. I don't expect that everyone has my limitations, but I don't think they're so rare, either. A macro that takes documented arguments and is expected not to randomly refer to stuff from its context is a big improvement for me. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 6:29 ` Jim Blandy @ 2006-02-04 10:33 ` Eli Zaretskii 0 siblings, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 10:33 UTC (permalink / raw) To: Jim Blandy; +Cc: gdb-patches > Date: Fri, 3 Feb 2006 22:29:26 -0800 > From: Jim Blandy <jimb@red-bean.com> > > A macro that takes documented arguments and is expected not to > randomly refer to stuff from its context is a big improvement for > me. The problem with a macro is where to define it. We previously defined them on the various *.mt and *.mh files, but now we are trying to eliminate those. And the code we are talking about is unsuitable for the configury stuff, since it is quite long. So I think, in practice, in this case a macro is not a good solution, except if it names a function whose implementation is elsewhere. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 3:27 ` Daniel Jacobowitz 2006-02-04 6:29 ` Jim Blandy @ 2006-02-04 10:59 ` Eli Zaretskii 2006-02-04 14:35 ` Mark Kettenis 2 siblings, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 10:59 UTC (permalink / raw) To: gdb-patches > Date: Fri, 3 Feb 2006 22:27:30 -0500 > From: Daniel Jacobowitz <drow@false.org> > > What I'd _love_ to do is refactor the bits of Cygwin which we need, > which are considerably smaller than the whole of Cygwin, so that we > could link them directly into GDB and not have to worry about it any > more. Given the copyright status of Cygwin, however, I think this is a > non-starter. I'm not even sure whether it would fit into the design > of Cygwin, or end up rewriting much of it anyway. I think this should be possible, using as the starting point the MinGW port of glibc (libgw32c from the GnuWin32 download server at http://prdownloads.sourceforge.net/gnuwin32). The problem (at least my problem) is that Some Work Is Needed(tm) to add the missing bits to that library, e.g. their `select' is a stab that always fails. So, if someone wants to go that way, they will need to free some non-trivial amount of time for the job. > The question of Windows support is not going to go away at any point in > the foreseeable future. If the GDB community is going to throw up its > hands and say ugh, well, I'd be pretty disappointed. Me too. When I work on Windows, I use the MinGW port of GCC exclusively, even though there's a ``free'' (as in "free beer") Microsoft compiler one can download from the net. Not having a good port of GDB would be a deadly blow for me, and installing Cygwin is not an option, because I still need to use native Windows programs. > And CodeSourcery would be maintaining a branch with these patches > for all of that foreseeable future, and shipping it. Would CodeSourcery consider supporting a MinGW specific port, along the lines I suggested elsewhere in this thread (i.e., having a separate -nat.c file and other files as needed)? If you will, and if that support is consistent with the GPL, then I think we can have everybody happy. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 3:27 ` Daniel Jacobowitz 2006-02-04 6:29 ` Jim Blandy 2006-02-04 10:59 ` Eli Zaretskii @ 2006-02-04 14:35 ` Mark Kettenis 2006-02-04 14:52 ` Daniel Jacobowitz 2006-02-04 15:14 ` Eli Zaretskii 2 siblings, 2 replies; 98+ messages in thread From: Mark Kettenis @ 2006-02-04 14:35 UTC (permalink / raw) To: drow; +Cc: gdb-patches > Date: Fri, 3 Feb 2006 22:27:30 -0500 > From: Daniel Jacobowitz <drow@false.org> > > I have some general responses to this thread so far, which > unfortunately hasn't addressed the actual patch at all but the overall > goal of working on MinGW32 i.e. Windows-without-Cygwin. > > On Fri, Feb 03, 2006 at 06:39:35PM -0500, Christopher Faylor wrote: > > On Sat, Feb 04, 2006 at 12:25:19AM +0100, Mark Kettenis wrote: > > >I think this is ugly. When the win32 support was added, we were told > > >that only minimal changes were necessary. But people keep pushing > > >#ifdef EVIL_CLOSED_SOURCE_PLATFORM_FROM_REDMOND patches. > > > > > >GDB is written for POSIX systems. It's clear that Windows isn't even > > >remotely POSIX compliant. > > I'm sorry you feel the need to use terms like "evil" to deal with a > real operating system that real people use. Perhaps I should have said #ifdef CLOSED_SOURCE_PLATFORM_FROM_EVIL_COMPANY_FROM_REDMOND You're right an operating system can't be evil. (But this is probably not the point you wanted to make ;-)). > I don't know who said "only minimal changes were necessary" but I'm > sure they were making their best guess at the time. In my recollection, Mark Mitchell, did say that. I grudgingly agreed to having the MinGW32 supprt in and actively worked together with him to reduce the amount of clutter from #ifdef's and such. It now turns out even more #ifdef's are needed. Will this ever stop? > 3. Relying on Cygwin to support Windows is awkward for a whole lot > of reasons, which are in many cases accepted as good ones, and I hope > that I don't need to rehash right now. But I will if I have to. Just > ask. > > That's why some people do it with Cygwin and some people do it without. > CodeSourcery has both decided on our own (based on the technical > merits) and heard unequivocally from our customers that relying on > Cygwin just isn't going to cut it. You may have to refresh my mind. I can see that depending on a third party library makes life a bit more difficult since you have to distribute it together with your project, but doesn't MinGW require you to do something similar? > It might be possible to create a minimalist set of POSIX wrapper > functions for Windows which were nowhere near as complete as Cygwin, > were built on top of mingw32, and were moderately more transparent to > GDB. But I don't think they'd be of much general use besides for GDB, > because there's real limits to how good an emulation you can manage > without - surprise! - reinventing Cygwin! See #1 above, please. So why aren't you using Cygwin then? It really seems that this was a bussiness decision rather than a decision made on purely technical grounds. > I'm sorry a lot of you find the changes either morally or aesthetically > objectionable. I'm not entirely sure which it is. My objections are mostly techincal, or easthetical if you want to call it that. Having two different versions of support code for what's in the end the same platform is silly. But I admot morality plays a role here. I'm much more inclined to accept #ifdef's for a Free (as in Freedom) system than I am for a non-free system. Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 14:35 ` Mark Kettenis @ 2006-02-04 14:52 ` Daniel Jacobowitz 2006-02-04 15:14 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-04 14:52 UTC (permalink / raw) To: Mark Kettenis; +Cc: gdb-patches On Sat, Feb 04, 2006 at 03:35:06PM +0100, Mark Kettenis wrote: > > I don't know who said "only minimal changes were necessary" but I'm > > sure they were making their best guess at the time. > > In my recollection, Mark Mitchell, did say that. I grudgingly agreed > to having the MinGW32 supprt in and actively worked together with him > to reduce the amount of clutter from #ifdef's and such. It now turns > out even more #ifdef's are needed. Will this ever stop? Mark's an optimist. What can I say? :-) Honestly, I don't think there's much more - this was the big missing feature for cross hosts, any more would be native support and that is more easily compartmentalizable. But the port is still very young, so I do not know. My crystal ball's in the shop. > > 3. Relying on Cygwin to support Windows is awkward for a whole lot > > of reasons, which are in many cases accepted as good ones, and I hope > > that I don't need to rehash right now. But I will if I have to. Just > > ask. > > > > That's why some people do it with Cygwin and some people do it without. > > CodeSourcery has both decided on our own (based on the technical > > merits) and heard unequivocally from our customers that relying on > > Cygwin just isn't going to cut it. > > You may have to refresh my mind. I can see that depending on a third > party library makes life a bit more difficult since you have to > distribute it together with your project, but doesn't MinGW require > you to do something similar? No. MinGW is primarily header files and import stubs for the standard Microsoft DLLs, which are already present on just about any Windows system. I'm not sure if they're all always installed or just most of them are always installed and the others usually installed. A GDB linked to MinGW runs on a clean Windows install; gdb.exe is all you need. It uses kernel32.dll, msvcrt.dll, and ws2_32.dll. > > It might be possible to create a minimalist set of POSIX wrapper > > functions for Windows which were nowhere near as complete as Cygwin, > > were built on top of mingw32, and were moderately more transparent to > > GDB. But I don't think they'd be of much general use besides for GDB, > > because there's real limits to how good an emulation you can manage > > without - surprise! - reinventing Cygwin! See #1 above, please. > > So why aren't you using Cygwin then? It really seems that this was a > bussiness decision rather than a decision made on purely technical > grounds. Sorry, Mark, but did you not read the bit you quoted above? "on or own (based on the technical merits)". It was also a business decision, but there are compelling technical reasons for us not to use Cygwin. For instance, the Cygwin DLL is a sort of "consensual reality", if you'll forgive the analogy. The emulation involves communication between Cygwin processes in some non-obvious ways (to me anyway). One of the consequences is that Cygwin apps get real unhappy when there's multiple copies of Cygwin installed, and there are folks who already use Cygwin (obviously), so installing one's own copy is fragile. And there's vendors of third-party software who ship copies of Cygwin in private directories, or heavily modified, so you can't always rely on the installed copy. Another reason is performance. Not a big issue for GDB, but Cygwin makes a pretty measurable dent in GCC compile times, or at least it did the last time we did measurements. That's another reason we really needed to ship a MinGW toolchain, and having done so there could be even more interoperability problems using it with a Cygwin GDB. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 14:35 ` Mark Kettenis 2006-02-04 14:52 ` Daniel Jacobowitz @ 2006-02-04 15:14 ` Eli Zaretskii 2006-02-05 0:15 ` Christopher Faylor 1 sibling, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 15:14 UTC (permalink / raw) To: Mark Kettenis; +Cc: drow, gdb-patches > Date: Sat, 4 Feb 2006 15:35:06 +0100 (CET) > From: Mark Kettenis <mark.kettenis@xs4all.nl> > CC: gdb-patches@sourceware.org > > My objections are mostly techincal, or easthetical if you want to call > it that. Having two different versions of support code for what's in > the end the same platform is silly. But it isn't the same platform, anymore than MIPS/Linux and MIPS/Irix are the same platform. Cygwin requires a considerable amount of additional software to be installed, of which a large part is a system library that presents a very different API than the native OS. > But I admot morality plays a role here. I'm much more inclined to > accept #ifdef's for a Free (as in Freedom) system than I am for a > non-free system. Then I think you should have similar reservations about the Cygwin port, because (as you believe) it is for the same non-free platform. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 15:14 ` Eli Zaretskii @ 2006-02-05 0:15 ` Christopher Faylor 2006-02-05 4:46 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Christopher Faylor @ 2006-02-05 0:15 UTC (permalink / raw) To: gdb-patches, drow, Mark Kettenis, Eli Zaretskii On Sat, Feb 04, 2006 at 05:13:41PM +0200, Eli Zaretskii wrote: >>Date: Sat, 4 Feb 2006 15:35:06 +0100 (CET) >>From: Mark Kettenis >> >>My objections are mostly techincal, or easthetical if you want to call >>it that. Having two different versions of support code for what's in >>the end the same platform is silly. > >But it isn't the same platform, anymore than MIPS/Linux and MIPS/Irix >are the same platform. Cygwin requires a considerable amount of >additional software to be installed, of which a large part is a system >library that presents a very different API than the native OS. The minimal amount of software required for gdb to run with cygwin is: gdb.exe, cygwin1.dll, cygiconv-2.dll, and cygncurses-8.dll . You may potentially need to have the terminfo library installed, too, don't know for sure, and I'm not really interested in testing. I wouldn't call that a considerable amount of software. You are apparently confusing the cygwin distribution with the cygwin DLL. That's like conflating Fedora Core 5 with the linux kernel. However, even if you're installing a minimal cygwin distribution + gdb it still should not fall into the category of "a considerable amount of additional software". Also, there is nothing in cygwin which stops you from running native windows apps (e.g., a mingw version of gcc) if that is your preference. I am well aware of all of the usual arguments which are raised when the use of the cygwin DLL is mentioned but I don't think you can really make the case that the Cygwin version of gdb requires a considerable amount of software to run. cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 0:15 ` Christopher Faylor @ 2006-02-05 4:46 ` Eli Zaretskii 2006-02-05 19:34 ` Christopher Faylor 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 4:46 UTC (permalink / raw) To: gdb-patches; +Cc: drow, Mark Kettenis > Date: Sat, 4 Feb 2006 19:15:03 -0500 > From: Christopher Faylor <me@cgf.cx> > > >But it isn't the same platform, anymore than MIPS/Linux and MIPS/Irix > >are the same platform. Cygwin requires a considerable amount of > >additional software to be installed, of which a large part is a system > >library that presents a very different API than the native OS. > > The minimal amount of software required for gdb to run with cygwin is: > gdb.exe, cygwin1.dll, cygiconv-2.dll, and cygncurses-8.dll . You may > potentially need to have the terminfo library installed, too, don't know > for sure, and I'm not really interested in testing. I wouldn't call > that a considerable amount of software. First, I think you need the shell as well (correct me if I'm wrong). Second, running GDB alone is not useful. People use the Cygwin build of GDB to debug other Cygwin programs. Just building those other programs requires a more or less full Cygwin installation, including the shell, Coreutils, Grep, Gawk, and whatsnot. More importantly, what matters is that the software that makes your system a Cygwin system modifies the OS interface in important ways, so it can no longer be considered the same platform, IMO. > You are apparently confusing the cygwin distribution with the cygwin > DLL. That's like conflating Fedora Core 5 with the linux kernel. Please give me more credit than that, Chris. > Also, there is nothing in cygwin which stops you from running native > windows apps (e.g., a mingw version of gcc) if that is your > preference. Yes, there is. But I'm sure you know that, so I won't elaborate. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 4:46 ` Eli Zaretskii @ 2006-02-05 19:34 ` Christopher Faylor 2006-02-05 19:49 ` Daniel Jacobowitz 2006-02-05 20:19 ` Eli Zaretskii 0 siblings, 2 replies; 98+ messages in thread From: Christopher Faylor @ 2006-02-05 19:34 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 06:46:06AM +0200, Eli Zaretskii wrote: >>Date: Sat, 4 Feb 2006 19:15:03 -0500 >>From: Christopher Faylor >> >>>But it isn't the same platform, anymore than MIPS/Linux and MIPS/Irix >>>are the same platform. Cygwin requires a considerable amount of >>>additional software to be installed, of which a large part is a system >>>library that presents a very different API than the native OS. >> >>The minimal amount of software required for gdb to run with Cygwin is: >>gdb.exe, Cygwin1.dll, cygiconv-2.dll, and cygncurses-8.dll . You may >>potentially need to have the terminfo library installed, too, don't >>know for sure, and I'm not really interested in testing. I wouldn't >>call that a considerable amount of software. > >First, I think you need the shell as well (correct me if I'm wrong). The shell is needed for the "shell" command. The shell is not used for running programs. So, yes, if you don't have a Cygwin shell, then the shell command won't work. If that is a show stopper, I could have gdb revert to using a windows shell if /bin/sh is missing. >Second, running GDB alone is not useful. People use the Cygwin build >of GDB to debug other Cygwin programs. Just building those other >programs requires a more or less full Cygwin installation, including >the shell, Coreutils, Grep, Gawk, and whatsnot. You've lost me. So people *do* (because they can) download a lot of other packages along with gdb so that means that gdb is unacceptable as a native debugger? I thought the point was that you needed too many packages to debug windows programs. Of course you can debug Cygwin programs with the Cygwin version of gdb. If you are going to be building programs which use configure then you will need coreutils, grep, gawk, and maybe even M4. Many people who use MinGW have native versions of these programs on their system, but that's sort of besides the point. We are talking about debugging Windows apps which do not use any of these. >More importantly, what matters is that the software that makes your >system a Cygwin system modifies the OS interface in important ways, so >it can no longer be considered the same platform, IMO. Cygwin is just a DLL. It doesn't inject itself into native windows applications to change what they see as the "OS interface", except for the, IMO, minor, caveats mentioned below. People use the Cygwin version of gdb to debug MinGW applications all of the time. In fact, I believe that one of the main MinGW developers uses Cygwin as his platform for working on MinGW. Other developers use MSYS which is a Cygwin fork. >>You are apparently confusing the Cygwin distribution with the Cygwin >>DLL. That's like conflating Fedora Core 5 with the linux kernel. > >Please give me more credit than that, Chris. Eli, you are making statements which I know to be false, so I can only draw the conclusion that you are either confused or misinformed. Neither is an an indication of lack of intelligence or something to be taken as an insult. >>Also, there is nothing in Cygwin which stops you from running native >>windows apps (e.g., a MinGW version of gcc) if that is your preference. > >Yes, there is. But I'm sure you know that, so I won't elaborate. I'd prefer that you did elaborate since you seem to be implying that I was (to put it politely) withholding information, and I have no idea what you're talking about. It would not make much sense to think that the existence of the Cygwin DLL on a windows system would somehow interfere with the correct operation of a windows program since there are scores of windows programs running on a correctly functioning Windows system at any given time. So, you can't mean that, obviously. If you're talking about trying to run programs under bash, then, the only problem that I can think of is what Daniel found - some native Windows programs misbehave if used with Cygwin's ttys or ptys. The solution to this dilemma is the same that you'd use if Cygwin was not on the system - don't use ptys or ttys. If you are a purist, then don't use bash. Just run gdb directly. I am not aware of any problems with running native windows programs under gdb. If there are, then I'd be happy to look into fixing them for as long as I continue to be maintainer. cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 19:34 ` Christopher Faylor @ 2006-02-05 19:49 ` Daniel Jacobowitz 2006-02-05 20:19 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-05 19:49 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 02:34:40PM -0500, Christopher Faylor wrote: > I am not aware of any problems with running native windows programs > under gdb. If there are, then I'd be happy to look into fixing them for > as long as I continue to be maintainer. FWIW, neither am I; I used a Cygwin GDB to debug all the patches I posted! -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 19:34 ` Christopher Faylor 2006-02-05 19:49 ` Daniel Jacobowitz @ 2006-02-05 20:19 ` Eli Zaretskii 2006-02-05 20:22 ` Daniel Jacobowitz 2006-02-05 22:44 ` Christopher Faylor 1 sibling, 2 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 20:19 UTC (permalink / raw) To: gdb-patches > Date: Sun, 5 Feb 2006 14:34:40 -0500 > From: Christopher Faylor <cgf-please-use-the-mailinglist@sourceware.org> > > On Sun, Feb 05, 2006 at 06:46:06AM +0200, Eli Zaretskii wrote: > >>Date: Sat, 4 Feb 2006 19:15:03 -0500 > >>From: Christopher Faylor > >> > >>>But it isn't the same platform, anymore than MIPS/Linux and MIPS/Irix > >>>are the same platform. Cygwin requires a considerable amount of > >>>additional software to be installed, of which a large part is a system > >>>library that presents a very different API than the native OS. > >> > >>The minimal amount of software required for gdb to run with Cygwin is: > >>gdb.exe, Cygwin1.dll, cygiconv-2.dll, and cygncurses-8.dll . You may > >>potentially need to have the terminfo library installed, too, don't > >>know for sure, and I'm not really interested in testing. I wouldn't > >>call that a considerable amount of software. > > > >First, I think you need the shell as well (correct me if I'm wrong). > > The shell is needed for the "shell" command. The shell is not used for > running programs. The latter is unlike on Posix platforms, right? > So, yes, if you don't have a Cygwin shell, then the shell command won't > work. If that is a show stopper, I could have gdb revert to using a > windows shell if /bin/sh is missing. I don't know if that's a show-stopper: I don't use Cygwin. But if Cygwin users frequently have a development environment without a shell (which I doubt is the case), then yes, having a workable `shell' command without Bash would be a good change. > >Second, running GDB alone is not useful. People use the Cygwin build > >of GDB to debug other Cygwin programs. Just building those other > >programs requires a more or less full Cygwin installation, including > >the shell, Coreutils, Grep, Gawk, and whatsnot. > > You've lost me. So people *do* (because they can) download a lot of > other packages along with gdb so that means that gdb is unacceptable as > a native debugger? I didn't say that; please re-read the wording you quoted. I said: But it isn't the same platform, anymore than MIPS/Linux and MIPS/Irix are the same platform. Cygwin requires a considerable amount of additional software to be installed, of which a large part is a system library that presents a very different API than the native OS. So this was in the context of discussing the ``2 ports on the same platform'' issue, not GDB being run alone. I'm saying that a Cygwin development environment changes the OS to a degree that it isn't the same system anymore. As another data point, consider this: Emacs now supports a Cygwin build as well as a native Windows build (either with MinGW or MSVC). The amount of Windows-specific code that is common to those two ports is close to nil. > >>Also, there is nothing in Cygwin which stops you from running native > >>windows apps (e.g., a MinGW version of gcc) if that is your preference. > > > >Yes, there is. But I'm sure you know that, so I won't elaborate. > > I'd prefer that you did elaborate since you seem to be implying that I > was (to put it politely) withholding information, and I have no idea > what you're talking about. > > It would not make much sense to think that the existence of the Cygwin > DLL on a windows system would somehow interfere with the correct > operation of a windows program since there are scores of windows > programs running on a correctly functioning Windows system at any given > time. So, you can't mean that, obviously. What I mean is that cooperation between native and Cygwin programs is not easy, to say the least. > If you're talking about trying to run programs under bash, then, the > only problem that I can think of is what Daniel found - some native > Windows programs misbehave if used with Cygwin's ttys or ptys. The > solution to this dilemma is the same that you'd use if Cygwin was not on > the system - don't use ptys or ttys. If you are a purist, then don't > use bash. Just run gdb directly. > > I am not aware of any problems with running native windows programs > under gdb. If there are, then I'd be happy to look into fixing them for > as long as I continue to be maintainer. I'm talking about ttys and ptys. I'm talking about Ctrl-C. I'm talking about incompatible quoting of command-line arguments and &&. I'm talking about mount points and text/binary I/O. Perhaps all this was solved in recent versions of Cygwin, I'm just repeating what I hear from Cygwin users around me. Which is why I didn't want to repeat that hearsay, but you left me no choice. Anyway, this discussion obviously doesn't lead to any constructive direction, so I suggest we drop it. Our disagreements about this were not born yesterday. Let's concentrate on the common goals, not on disagreements. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 20:19 ` Eli Zaretskii @ 2006-02-05 20:22 ` Daniel Jacobowitz 2006-02-05 21:50 ` Christopher Faylor 2006-02-05 22:44 ` Christopher Faylor 1 sibling, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-05 20:22 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 10:19:12PM +0200, Eli Zaretskii wrote: > > The shell is needed for the "shell" command. The shell is not used for > > running programs. > > The latter is unlike on Posix platforms, right? That is an implementation artifact that, IMO, we desperately need to move away from. It's a continual source of trouble from e.g. unexpected variable settings in shell initialization files, and it's an aggravating (to me) external dependency for GDB. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 20:22 ` Daniel Jacobowitz @ 2006-02-05 21:50 ` Christopher Faylor 2006-02-05 21:57 ` Daniel Jacobowitz 2006-02-05 22:57 ` Eli Zaretskii 0 siblings, 2 replies; 98+ messages in thread From: Christopher Faylor @ 2006-02-05 21:50 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 03:22:22PM -0500, Daniel Jacobowitz wrote: >On Sun, Feb 05, 2006 at 10:19:12PM +0200, Eli Zaretskii wrote: >> > The shell is needed for the "shell" command. The shell is not used for >> > running programs. >> >> The latter is unlike on Posix platforms, right? > >That is an implementation artifact that, IMO, we desperately need to >move away from. It's a continual source of trouble from e.g. >unexpected variable settings in shell initialization files, and it's >an aggravating (to me) external dependency for GDB. I did try to implement this artifact in Cygwin once but I never got it right. Isn't the shell used to allow redirection and shell-like quoting from the gdb command-line? Lack of redirection, at least, is an occasional complaint about gdb-under-cygwin. cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 21:50 ` Christopher Faylor @ 2006-02-05 21:57 ` Daniel Jacobowitz 2006-02-05 22:33 ` Christopher Faylor 2006-02-05 22:47 ` Eli Zaretskii 2006-02-05 22:57 ` Eli Zaretskii 1 sibling, 2 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-05 21:57 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 04:50:36PM -0500, Christopher Faylor wrote: > On Sun, Feb 05, 2006 at 03:22:22PM -0500, Daniel Jacobowitz wrote: > >On Sun, Feb 05, 2006 at 10:19:12PM +0200, Eli Zaretskii wrote: > >> > The shell is needed for the "shell" command. The shell is not used for > >> > running programs. > >> > >> The latter is unlike on Posix platforms, right? > > > >That is an implementation artifact that, IMO, we desperately need to > >move away from. It's a continual source of trouble from e.g. > >unexpected variable settings in shell initialization files, and it's > >an aggravating (to me) external dependency for GDB. > > I did try to implement this artifact in Cygwin once but I never got > it right. > > Isn't the shell used to allow redirection and shell-like quoting from > the gdb command-line? Lack of redirection, at least, is an occasional > complaint about gdb-under-cygwin. That's right; and we certainly can't ditch that support. But what we do today is pass the command line arguments directly to a shell, which means all sorts of worrying about quoting, and also means that we get Bourne shell behavior if the user has an appropriate $SHELL, or C shell if they're using csh/tcsh, et cetera. I don't know if anyone takes advantage of that as a feature, but it's sure confusing! I keep telling myself we ought to somehow get rid of this, but I'm fuzzy on the details. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 21:57 ` Daniel Jacobowitz @ 2006-02-05 22:33 ` Christopher Faylor 2006-02-05 22:41 ` Daniel Jacobowitz 2006-02-05 22:59 ` Eli Zaretskii 2006-02-05 22:47 ` Eli Zaretskii 1 sibling, 2 replies; 98+ messages in thread From: Christopher Faylor @ 2006-02-05 22:33 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 04:56:59PM -0500, Daniel Jacobowitz wrote: >On Sun, Feb 05, 2006 at 04:50:36PM -0500, Christopher Faylor wrote: >>On Sun, Feb 05, 2006 at 03:22:22PM -0500, Daniel Jacobowitz wrote: >>>On Sun, Feb 05, 2006 at 10:19:12PM +0200, Eli Zaretskii wrote: >>>>>The shell is needed for the "shell" command. The shell is not used for >>>>>running programs. >>>> >>>>The latter is unlike on Posix platforms, right? >>> >>>That is an implementation artifact that, IMO, we desperately need to >>>move away from. It's a continual source of trouble from e.g. >>>unexpected variable settings in shell initialization files, and it's an >>>aggravating (to me) external dependency for GDB. >> >>I did try to implement this artifact in Cygwin once but I never got it >>right. >> >>Isn't the shell used to allow redirection and shell-like quoting from >>the gdb command-line? Lack of redirection, at least, is an occasional >>complaint about gdb-under-cygwin. > >That's right; and we certainly can't ditch that support. But what we >do today is pass the command line arguments directly to a shell, which >means all sorts of worrying about quoting, and also means that we get >Bourne shell behavior if the user has an appropriate $SHELL, or C shell >if they're using csh/tcsh, et cetera. I don't know if anyone takes >advantage of that as a feature, but it's sure confusing! > >I keep telling myself we ought to somehow get rid of this, but I'm >fuzzy on the details. I'm feeling deja vu here. I suspect that we've probably discussed this before. :-) If so, I probably said something like "Maybe we could just standardize on /bin/bash quoting and redirection rules and put a shell-like command parser in gdb." cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 22:33 ` Christopher Faylor @ 2006-02-05 22:41 ` Daniel Jacobowitz 2006-02-06 6:35 ` Christopher Faylor 2006-02-05 22:59 ` Eli Zaretskii 1 sibling, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-05 22:41 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 05:33:51PM -0500, Christopher Faylor wrote: > I'm feeling deja vu here. I suspect that we've probably discussed this > before. :-) > > If so, I probably said something like "Maybe we could just standardize > on /bin/bash quoting and redirection rules and put a shell-like command > parser in gdb." Well, it'd work for me, but I have no idea if anyone relies on the current behavior or not. I guess we can come back to this one later :-) I'll post a revised patch on Monday and see if I can make folks a bit happier. How would you feel if I created two MinGW-specific files, and would you prefer not to be their maintainer? -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 22:41 ` Daniel Jacobowitz @ 2006-02-06 6:35 ` Christopher Faylor 2006-02-06 17:26 ` Daniel Jacobowitz 0 siblings, 1 reply; 98+ messages in thread From: Christopher Faylor @ 2006-02-06 6:35 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 05:41:21PM -0500, Daniel Jacobowitz wrote: >How would you feel if I created two MinGW-specific files, and would you >prefer not to be their maintainer? I don't mind MINGW-specific files. Would it be less troublesome if you were the maintainer of those files? I don't mind eyeballing MinGW patches but I probably shouldn't be the final authority on whether they are appropriate or not. cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 6:35 ` Christopher Faylor @ 2006-02-06 17:26 ` Daniel Jacobowitz 0 siblings, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 17:26 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 01:35:47AM -0500, Christopher Faylor wrote: > On Sun, Feb 05, 2006 at 05:41:21PM -0500, Daniel Jacobowitz wrote: > >How would you feel if I created two MinGW-specific files, and would you > >prefer not to be their maintainer? > > I don't mind MINGW-specific files. Would it be less troublesome if you > were the maintainer of those files? I don't mind eyeballing MinGW > patches but I probably shouldn't be the final authority on whether they > are appropriate or not. Doesn't make much difference to me; you're responsive and (very!) helpful. And I definitely appreciate another eye on them. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 22:33 ` Christopher Faylor 2006-02-05 22:41 ` Daniel Jacobowitz @ 2006-02-05 22:59 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 22:59 UTC (permalink / raw) To: gdb-patches > Date: Sun, 5 Feb 2006 17:33:51 -0500 > From: Christopher Faylor <me@cgf.cx> > > If so, I probably said something like "Maybe we could just standardize > on /bin/bash quoting and redirection rules and put a shell-like command > parser in gdb." I really think that what we have now in GDB is The Right Way, as I wrote in another message. Unless someone points out where I'm missing something, that is. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 21:57 ` Daniel Jacobowitz 2006-02-05 22:33 ` Christopher Faylor @ 2006-02-05 22:47 ` Eli Zaretskii 2006-02-06 2:41 ` Daniel Jacobowitz 1 sibling, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 22:47 UTC (permalink / raw) To: gdb-patches > Date: Sun, 5 Feb 2006 16:56:59 -0500 > From: Daniel Jacobowitz <drow@false.org> > > > Isn't the shell used to allow redirection and shell-like quoting from > > the gdb command-line? Lack of redirection, at least, is an occasional > > complaint about gdb-under-cygwin. > > That's right; and we certainly can't ditch that support. But what we > do today is pass the command line arguments directly to a shell, which > means all sorts of worrying about quoting, and also means that we get > Bourne shell behavior if the user has an appropriate $SHELL, or C shell > if they're using csh/tcsh, et cetera. I don't know if anyone takes > advantage of that as a feature, but it's sure confusing! I don't see why this is confusing at all. The point is that the user should type the command arguments as if she were typing at the shell's prompt, and feel exactly the same. So I don't see why we need to worry about quoting--just passing the args verbatim to the shell should do the trick. Or am I missing something? ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 22:47 ` Eli Zaretskii @ 2006-02-06 2:41 ` Daniel Jacobowitz 2006-02-06 4:20 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 2:41 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 12:47:58AM +0200, Eli Zaretskii wrote: > > Date: Sun, 5 Feb 2006 16:56:59 -0500 > > From: Daniel Jacobowitz <drow@false.org> > > > > > Isn't the shell used to allow redirection and shell-like quoting from > > > the gdb command-line? Lack of redirection, at least, is an occasional > > > complaint about gdb-under-cygwin. > > > > That's right; and we certainly can't ditch that support. But what we > > do today is pass the command line arguments directly to a shell, which > > means all sorts of worrying about quoting, and also means that we get > > Bourne shell behavior if the user has an appropriate $SHELL, or C shell > > if they're using csh/tcsh, et cetera. I don't know if anyone takes > > advantage of that as a feature, but it's sure confusing! > > I don't see why this is confusing at all. The point is that the user > should type the command arguments as if she were typing at the shell's > prompt, and feel exactly the same. So I don't see why we need to > worry about quoting--just passing the args verbatim to the shell > should do the trick. Or am I missing something? This way you can't write documentation for GDB that says how the arguments to "run" behave - you have to reference another program, and we're not even sure which program it is half the time. I'd rather be able to have a chapter in the manual saying "this is how you use globbing, if you want to", and "this is how you escape arguments", and "this is how you redirect stderr to a file, if your platform supports that". Bonus: we could make that work with remote targets, too, by redirecting the Remote File I/O stdout and stderr channels. I will be doing some work with both file I/O and remote argument passing over the next month; I may revisit this and write a proposal... -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 2:41 ` Daniel Jacobowitz @ 2006-02-06 4:20 ` Eli Zaretskii 0 siblings, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-06 4:20 UTC (permalink / raw) To: gdb-patches > Date: Sun, 5 Feb 2006 21:41:10 -0500 > From: Daniel Jacobowitz <drow@false.org> > > > I don't see why this is confusing at all. The point is that the user > > should type the command arguments as if she were typing at the shell's > > prompt, and feel exactly the same. So I don't see why we need to > > worry about quoting--just passing the args verbatim to the shell > > should do the trick. Or am I missing something? > > This way you can't write documentation for GDB that says how the > arguments to "run" behave - you have to reference another program, > and we're not even sure which program it is half the time. I don't think it's such a grave problem. Saying it behaves "like your shell" should be good enough. Many programs have commands that invoke an inferior shell, and they all bump into this issue. We just happen to have 2 such commands instead of one. > I'd rather be able to have a chapter in the manual saying "this is how > you use globbing, if you want to", and "this is how you escape > arguments", and "this is how you redirect stderr to a file, if your > platform supports that". That'd be okay, too, but it will require to write a shell-compatible command-line parser. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 21:50 ` Christopher Faylor 2006-02-05 21:57 ` Daniel Jacobowitz @ 2006-02-05 22:57 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 22:57 UTC (permalink / raw) To: gdb-patches > Date: Sun, 5 Feb 2006 16:50:36 -0500 > From: Christopher Faylor <me@cgf.cx> > > I did try to implement this artifact in Cygwin once but I never got > it right. I once wrote code that did that for the DJGPP port. If someone is interested, I can tell where to find that (it's part of the DJGPP debug support library). It didn't support all the redirection features of the Posix shell, but that shouldn't be too hard to add, I think. Some of the code there (the juggling with standard handles when control jumps between GDB and the inferior) is not needed for Cygwin, I think. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 20:19 ` Eli Zaretskii 2006-02-05 20:22 ` Daniel Jacobowitz @ 2006-02-05 22:44 ` Christopher Faylor 2006-02-05 23:07 ` Eli Zaretskii 1 sibling, 1 reply; 98+ messages in thread From: Christopher Faylor @ 2006-02-05 22:44 UTC (permalink / raw) To: gdb-patches On Sun, Feb 05, 2006 at 10:19:12PM +0200, Eli Zaretskii wrote: >> Date: Sun, 5 Feb 2006 14:34:40 -0500 >> From: Christopher Faylor >> >> On Sun, Feb 05, 2006 at 06:46:06AM +0200, Eli Zaretskii wrote: >> >>Date: Sat, 4 Feb 2006 19:15:03 -0500 >> >>From: Christopher Faylor >> >> > >I don't know if that's a show-stopper: I don't use Cygwin. !!! >But if Cygwin users frequently have a development environment without a >shell (which I doubt is the case), then yes, having a workable `shell' >command without Bash would be a good change. I'm not sure how this was misconstrued but I wasn't asking for your advice about the Cygwin development environment. I was referring to the minimal environment that I was mentioning. By listing the DLLs required to run gdb, I thought that it would show that you don't need a whole cygwin distribution if you want to debug your MinGW-based applications. >> >Second, running GDB alone is not useful. People use the Cygwin build >> >of GDB to debug other Cygwin programs. Just building those other >> >programs requires a more or less full Cygwin installation, including >> >the shell, Coreutils, Grep, Gawk, and whatsnot. >> >> You've lost me. So people *do* (because they can) download a lot of >> other packages along with gdb so that means that gdb is unacceptable as >> a native debugger? > >I didn't say that; please re-read the wording you quoted. I said: > > But it isn't the same platform, anymore than MIPS/Linux and MIPS/Irix > are the same platform. Cygwin requires a considerable amount of > additional software to be installed, of which a large part is a system > library that presents a very different API than the native OS. > >So this was in the context of discussing the ``2 ports on the same >platform'' issue, not GDB being run alone. I'm saying that a Cygwin >development environment changes the OS to a degree that it isn't the >same system anymore. You were arguing that Cygwin "isn't the same platform" as Windows. I am arguing that, as far as GDB is concerned, the distinction is meaningless. (It really is pretty much meaningless in general, but that is a separate issue) If you want to develop programs for any platform then, *of course* you need the compilers and any supporting software necessary. If you only want to compile programs, the software requirements for Cygwin and MinGW are pretty much the same. Once you start moving into the realm of complicated autoconf-based packages you leave MinGW behind (by its very nature) so the distinction is pointless. So, a development environment for MinGW could just consist of the MinGW version of gcc, the MinGW version of make, and the Cygwin version of gdb plus a few dlls. Given the number of auxilliary files that are installed with gcc, I don't see how anyone could really complain about the addition of a few extra files with gdb.exe. >As another data point, consider this: Emacs now supports a Cygwin >build as well as a native Windows build (either with MinGW or MSVC). >The amount of Windows-specific code that is common to those two ports >is close to nil. Until the time that Cygwin implements ptrace or some other UNIX-alike debugging scheme, a native windows debuger will use the low-level Windows-specific API for debugging (which is actually, IMO, a pretty nice interface). gdb is different than 'gcc' or 'make' or most other programs because it is not possible to easily hide OS differences with wrapper functions. The majority of the code in win32-nat.c is not cygwin-specific. It's just there to plug the Windows debugging API into gdb. So, drawing analogies with emacs or most other programs is meaningless. >>If you're talking about trying to run programs under bash, then, the >>only problem that I can think of is what Daniel found - some native >>Windows programs misbehave if used with Cygwin's ttys or ptys. The >>solution to this dilemma is the same that you'd use if Cygwin was not >>on the system - don't use ptys or ttys. If you are a purist, then >>don't use bash. Just run gdb directly. >> >>I am not aware of any problems with running native windows programs >>under gdb. If there are, then I'd be happy to look into fixing them >>for as long as I continue to be maintainer. > >I'm talking about ttys and ptys. I'm talking about Ctrl-C. Aha! Details. Ctrl-C is not an issue for running windows programs in gdb. >I'm talking about incompatible quoting of command-line arguments and >&&. Don't know what "&&" is but the quoting of command-line arguments in Cygwin is supposed to mimic MSVCRT. I'm sure that we didn't get it entirely right wrt things like quoting quotes, however. And, getting it 100% compliant is not a huge goal for the project. It's difficult to accept patches for it since understanding the quoting rules is not easy and so you can't trust that random-Joe-patcher got it right. Luckily, this is not an issue for gdb since gdb passes arguments verbatim. >I'm talking about mount points and text/binary I/O. Not an issue for native windows programs. Certainly not an issue for programs run by gdb. (And, I'm wondering how anyone can think that Cygwin's mount points could impact windows programs. Maybe it's spooky action at a distance.) >Perhaps all this was solved in recent versions of Cygwin, I'm just >repeating what I hear from Cygwin users around me. Which is why I >didn't want to repeat that hearsay, but you left me no choice. !!! >Anyway, this discussion obviously doesn't lead to any constructive >direction, so I suggest we drop it. Our disagreements about this were >not born yesterday. Let's concentrate on the common goals, not on >disagreements. I would love to get off the treadmill, yes. I was just trying to understand your objections to using the Cygwin-based gdb as the one-and-only windows implementation in gdb. Now I do. AFAICT, your objections are, for the most part, not based on fact. cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 22:44 ` Christopher Faylor @ 2006-02-05 23:07 ` Eli Zaretskii 2006-02-06 5:14 ` Christopher Faylor 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 23:07 UTC (permalink / raw) To: gdb-patches > Date: Sun, 5 Feb 2006 17:44:14 -0500 > From: Christopher Faylor <cgf-use-the-mailinglist-please@cygwin.com> > > I would love to get off the treadmill, yes. I was just trying to > understand your objections to using the Cygwin-based gdb as the > one-and-only windows implementation in gdb. Now I do. AFAICT, your > objections are, for the most part, not based on fact. They _are_ based on facts (user complaints), you just happen to dismiss those facts as ``irrelevant''. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 23:07 ` Eli Zaretskii @ 2006-02-06 5:14 ` Christopher Faylor 2006-02-06 7:20 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Christopher Faylor @ 2006-02-06 5:14 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 01:07:08AM +0200, Eli Zaretskii wrote: >>Date: Sun, 5 Feb 2006 17:44:14 -0500 >>From: Christopher Faylor >> >>I would love to get off the treadmill, yes. I was just trying to >>understand your objections to using the Cygwin-based gdb as the >>one-and-only windows implementation in gdb. Now I do. AFAICT, your >>objections are, for the most part, not based on fact. > >They _are_ based on facts (user complaints), you just happen to >dismiss those facts as ``irrelevant''. You're very tenacious aren't you? Ok. I'll keep this up as long as you like. I explained why the issues that you brought up were not problems for a cygwin version of gdb. If you want to give details about problems which affect the cygwin version of gdb, I'll try to fix them. Otherwise, you're right, I will just dismiss detail-free hearsay-based "user complaints". cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 5:14 ` Christopher Faylor @ 2006-02-06 7:20 ` Eli Zaretskii 2006-02-06 8:47 ` Corinna Vinschen 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-06 7:20 UTC (permalink / raw) To: gdb-patches > Date: Mon, 6 Feb 2006 00:14:51 -0500 > From: Christopher Faylor <cgf-mailing-list-please@cygwin.com> > > >>AFAICT, your objections are, for the most part, not based on fact. > > > >They _are_ based on facts (user complaints), you just happen to > >dismiss those facts as ``irrelevant''. > > You're very tenacious aren't you? I'm trying very hard not to be tenacious (as in ``stubborn''), but you cannot expect me to leave remarks like ``not based on fact'' unanswered. Can't we respectfully disagree without resorting to such ``arguments''? The fact that we interpret the same facts differently does not necessarily mean one of us is hallucinating. > I explained why the issues that you brought up were not problems for a > cygwin version of gdb. You asked about incompatibilities between Cygwin and native Windows in general, so that's what I replied to. I didn't say anywhere that I was talking about GDB in the narrow sense. However, it should be quite clear that, since Cygwin is a coherent system of tools that need to work together, any issues with Cygwin at large will necessarily affect users' will to install and use the Cygwin GDB. (At least that's the case with me.) When I considered installing the Cygwin GDB, the questions that bugged me were like "will gdbtui work without the Cygwin terminal/rxvt/whatever?", "will Insight work without Xfree86?", "do I need Bash or other packages installed, and what are those packages?", etc. I didn't find answers to those questions, and AFAICS (although I cannot say I searched too hard) those answers still aren't available today; apologies if I missed something obvious. I ended up installing the MinGW port becaue it didn't require anything else besides the GDB binary. Can you see how this is much easier for someone who likes to know what is going on on their machines, and doesn't wish to change the flavor of their system just to use a debugger? And please don't tell me that Setup does all that automagically for me: since I have quite an elaborate setup on my machines, I cannot afford letting automated setup programs download and install packages without me being in control wrt what is and what isn't installed, to make sure my configuration doesn't get screwed up. I don't have the luxury of spending long hours fixing what some installation broke. In other words, Cygwin seems to be made for people who are prepared to marry Cygwin for all their development needs. It doesn't cater easily to those, like me, who aren't. And this problem shows even if all I want is GDB, to debug my own programs. > If you want to give details about problems which > affect the cygwin version of gdb, I'll try to fix them. I don't think there's anything specific to ``fix'', it's the concept that is IMHO flawed. MinGW ports are so much simpler to install separately, as the need arises, and are so much simpler to control wrt their overall effect on the system. Now, if only I could find a decent MinGW port of a Unixy shell... Can we now leave this topic alone, please? I don't expect you to agree with me or accept my gripes, and neither is this directly relevant to gdb-patches. There's no reason to waste our times disagreeing more, nor flooding others' mailboxes with messages that don't lead anywhere. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 7:20 ` Eli Zaretskii @ 2006-02-06 8:47 ` Corinna Vinschen 2006-02-06 12:07 ` Bob Rossi 0 siblings, 1 reply; 98+ messages in thread From: Corinna Vinschen @ 2006-02-06 8:47 UTC (permalink / raw) To: gdb-patches On Feb 6 02:18, Eli Zaretskii wrote: > > From: Christopher Faylor <cgf-mailing-list-please@cygwin.com> > wa However, it should be > quite clear that, since Cygwin is a coherent system of tools that need > to work together, [...] That's a misconception. You're mixing Cygwin, the distribution with Cygwin, the DLL. Take a tool and the libraries it's linked against, and you're all set. > When I considered installing the Cygwin GDB, the questions that bugged > me were like "will gdbtui work without the Cygwin terminal/rxvt/whatever?", Yes it works, like every other Cygwin CLI tool, in the standard Windows console. Why should it be different? > "will Insight work without Xfree86?" No, you never needed XFree86 for Insight since the Tcltk package is Windows GUI based, and it is so for since its beginnings. > "do I need Bash or other > packages installed, and what are those packages?" No. > , etc. I didn't find > answers to those questions, and AFAICS (although I cannot say I > searched too hard) those answers still aren't available today; You could have asked. Corinna -- Corinna Vinschen Cygwin Project Co-Leader Red Hat ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 8:47 ` Corinna Vinschen @ 2006-02-06 12:07 ` Bob Rossi 2006-02-06 14:23 ` Daniel Jacobowitz 0 siblings, 1 reply; 98+ messages in thread From: Bob Rossi @ 2006-02-06 12:07 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 09:47:04AM +0100, Corinna Vinschen wrote: > On Feb 6 02:18, Eli Zaretskii wrote: > > > From: Christopher Faylor <cgf-mailing-list-please@cygwin.com> > > wa However, it should be > > quite clear that, since Cygwin is a coherent system of tools that need > > to work together, [...] > > That's a misconception. You're mixing Cygwin, the distribution with > Cygwin, the DLL. Take a tool and the libraries it's linked against, > and you're all set. Eli, I have to side with you here. Even though I find Cygwin absolutely amazing, it is documented, that there is *no* absolute way to deliver a Cygwin DLL and ensure that your package will work on the target system. If there are 2 Cygwin DLL's on a system, then Cygwin can not operate. For instance, if I install GNAT 3.15p, and I have Cygwin installed, I have to modify the GNAT binary of GDB to change the name of the DLL they renamed Cygwin to back to cygwin1.dll. Then, I have to remove the Cygwin DLL they used. Fortunately this even works. Secondly, it's impossible to create a package that ensures the user doesn't go ahead and install Cygwin 5 minutes after they install the GDB package, which would basically break your GDB installation. I personally think the Cygwin DLL installation issue needs to be brought to the next level, before it's considered OK to install the cygwin1.dll Anyways, I use Cygwin daily and couldn't live with out it, however, as trying to package CGDB, I've found the only reasonable alternative is to attempt to get it upstream with the Cygwin distribution. Thanks, Bob Rossi ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 12:07 ` Bob Rossi @ 2006-02-06 14:23 ` Daniel Jacobowitz 2006-02-06 18:37 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 14:23 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 07:08:35AM -0500, Bob Rossi wrote: > ... _PLEASE_ take this somewhere else, everybody. If someone's said something you feel can not be left unanswered, please answer it in private mail, or on a Cygwin-specific list. If you have any comments about the patch at the beginning of this thread, or about MinGW32 support in GDB (on which we seem to have made some actual progress, though it's hard to find in the discussion), then those are on topic for gdb-patches. The rest of this discussion is no longer, and it's really not helping anything except scrolling the subject off the right side of my screen with threading markers... -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 14:23 ` Daniel Jacobowitz @ 2006-02-06 18:37 ` Eli Zaretskii 0 siblings, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-06 18:37 UTC (permalink / raw) To: gdb-patches > Date: Mon, 6 Feb 2006 09:23:23 -0500 > From: Daniel Jacobowitz <drow@false.org> > > If someone's said something you feel can not be left unanswered, please > answer it in private mail, or on a Cygwin-specific list. That's a bit hard to do, what with people who use Reply-To and/or Mail-Followup-To headers to explicitly direct the responses to the list. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 23:39 ` Christopher Faylor 2006-02-04 3:27 ` Daniel Jacobowitz @ 2006-02-04 10:03 ` Eli Zaretskii 2006-02-05 0:27 ` Christopher Faylor 1 sibling, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 10:03 UTC (permalink / raw) To: gdb-patches > Date: Fri, 3 Feb 2006 18:39:35 -0500 > From: Christopher Faylor <cgf-please-use-the-mailinglist@sourceware.org> > > The gist of the email is that I'm not happy having to support > windows-specific workarounds in gdb while standing on my head in > cygwin-land to make sure that as few workarounds as possible are needed > for programs like gdb. Why do you guys always start important arguments while I'm asleep? ;-) > I'm concerned that the MinGW patches are going to eventually start > encroaching on win32-nat.c (which we've already seen). I don't *want* > to litter that file with any special non-cygwin accommodations. Then perhaps we should create a new -nat.c file, say mingw-nat.c, and maintain it separately. (For that matter, I'd really love to see win32-nat.c be renamed to cygwin-nat.c, since that's what it really is going to be.) If neither Daniel nor Mark M. can afford becoming responsible maintainers for such a new native file, I volunteer to do my best to do that. Would you agree to such a solution? > So, I'm not sure what to do here. I agree with Mark, though (and with > Ulrich Drepper when he made points about non-POSIX systems in his blog). I suggest we don't go there, and don't start arguing about Ulrich's points (which I personally find deeply flawed). We don't need to agree on ideology, as long as we find a good way of cooperating towards common goals, a way that leaves everybody reasonably happy. After all, even I could drink beer with Ulrich when we met in Japan, although our email relationship--how should I put it?--leaves a lot to be desired ;-) ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 10:03 ` Eli Zaretskii @ 2006-02-05 0:27 ` Christopher Faylor 2006-02-05 2:01 ` Daniel Jacobowitz 2006-02-05 4:48 ` Eli Zaretskii 0 siblings, 2 replies; 98+ messages in thread From: Christopher Faylor @ 2006-02-05 0:27 UTC (permalink / raw) To: gdb-patches On Sat, Feb 04, 2006 at 12:03:38PM +0200, Eli Zaretskii wrote: >> Date: Fri, 3 Feb 2006 18:39:35 -0500 >> From: Christopher Faylor <cgf-please-use-the-mailinglist@sourceware.org> >> >> The gist of the email is that I'm not happy having to support >> windows-specific workarounds in gdb while standing on my head in >> cygwin-land to make sure that as few workarounds as possible are needed >> for programs like gdb. > >Why do you guys always start important arguments while I'm asleep? ;-) > >> I'm concerned that the MinGW patches are going to eventually start >> encroaching on win32-nat.c (which we've already seen). I don't *want* >> to litter that file with any special non-cygwin accommodations. > >Then perhaps we should create a new -nat.c file, say mingw-nat.c, and >maintain it separately. (For that matter, I'd really love to see >win32-nat.c be renamed to cygwin-nat.c, since that's what it really is >going to be.) If neither Daniel nor Mark M. can afford becoming >responsible maintainers for such a new native file, I volunteer to do >my best to do that. > >Would you agree to such a solution? That is *exactly* what I expected to come out of this discussion. And, I suspect that it won't just be win32-nat.c which will have to be changed. There will be a header file or two, and probably some configuration magic. And, really, it is a bad design decision to have two different files using the same debugging mechanism. If this was to be done right then win32-nat.c should somehow be factored out further so that the common bits can be shared. Cygwin and MinGW are alike enough that they should share code. However, that is, again, not something that I have any interest in doing. This is a personal preference and I'm afraid that it is very unlikely that anyone is going to convince me otherwise. >> So, I'm not sure what to do here. I agree with Mark, though (and with >> Ulrich Drepper when he made points about non-POSIX systems in his blog). > >I suggest we don't go there, and don't start arguing about Ulrich's >points (which I personally find deeply flawed). We don't need to >agree on ideology, as long as we find a good way of cooperating >towards common goals, a way that leaves everybody reasonably happy. > >After all, even I could drink beer with Ulrich when we met in Japan, >although our email relationship--how should I put it?--leaves a lot to >be desired ;-) I think Ulrich's point was that wasting time tinkering with code to make it work better with non-POSIX platforms was counter-productive for projects which are designed to run on same. However, I'm not really interested in debating this either. I just mentioned it as an illustration of the fact that I have two problems with MinGW. One is a very strong personal preference to not have to worry about it in the part of gdb that I maintain and the other is a personal belief that the addition of accommodations for Windows in programs like gdb (or glibc) will prove to be detrimental to development in the long run. So, you might wear me down on the personal belief but it is extremely unlikely that anyone is going to change my personal preference. cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 0:27 ` Christopher Faylor @ 2006-02-05 2:01 ` Daniel Jacobowitz 2006-02-05 4:49 ` Eli Zaretskii 2006-02-05 4:48 ` Eli Zaretskii 1 sibling, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-05 2:01 UTC (permalink / raw) To: gdb-patches On Sat, Feb 04, 2006 at 07:27:10PM -0500, Christopher Faylor wrote: > On Sat, Feb 04, 2006 at 12:03:38PM +0200, Eli Zaretskii wrote: > >Then perhaps we should create a new -nat.c file, say mingw-nat.c, and > >maintain it separately. (For that matter, I'd really love to see > >win32-nat.c be renamed to cygwin-nat.c, since that's what it really is > >going to be.) If neither Daniel nor Mark M. can afford becoming > >responsible maintainers for such a new native file, I volunteer to do > >my best to do that. > > > >Would you agree to such a solution? > > That is *exactly* what I expected to come out of this discussion. And, > I suspect that it won't just be win32-nat.c which will have to be changed. > There will be a header file or two, and probably some configuration magic. > > And, really, it is a bad design decision to have two different files > using the same debugging mechanism. If this was to be done right then > win32-nat.c should somehow be factored out further so that the common > bits can be shared. Cygwin and MinGW are alike enough that they should > share code. > > However, that is, again, not something that I have any interest in doing. > This is a personal preference and I'm afraid that it is very unlikely that > anyone is going to convince me otherwise. Wouldn't dream of trying. I think that mingw32 hosting support and mingw32 native support can be treated separately; do you disagree? I'm not actually interested in adding the latter, not at the moment anyway, and neither are you; if someone becomes interested, we can hold them to an appropriately high standard of separation from Cygwin support. My only interest is in cross debuggers (mostly ARM and PPC at the moment) hosted on MinGW32. So you've already seen most of what I expect to do. I'll plan to rename ser-windows.c to something less ambiguous; and since there was a clear reaction that the call to FormatMessage doesn't belong in utils.c, I'm going to put that in a new file too (I am considering "mingw32-hdep.c"). We can include that in Windows support, or separate the two, whichever you'd prefer. In case it isn't clear, one of my foremost goals here is to prevent maintenance burden: on the one hand, for my employer, and on the other hand, for the GDB community. Both hands are important to me, but it's not easy to balance them. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 2:01 ` Daniel Jacobowitz @ 2006-02-05 4:49 ` Eli Zaretskii 2006-02-05 7:39 ` Jim Blandy 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 4:49 UTC (permalink / raw) To: gdb-patches > Date: Sat, 4 Feb 2006 21:01:14 -0500 > From: Daniel Jacobowitz <drow@false.org> > > I think that mingw32 hosting support and mingw32 native support can be > treated separately; do you disagree? I do. I think they should be treated together, as having a cross debugger that cannot debug natively is kinda silly. > I'm not actually interested in > adding the latter, not at the moment anyway, and neither are you; if > someone becomes interested, we can hold them to an appropriately high > standard of separation from Cygwin support. > > My only interest is in cross debuggers (mostly ARM and PPC at the > moment) hosted on MinGW32. I'm sorry to hear that. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 4:49 ` Eli Zaretskii @ 2006-02-05 7:39 ` Jim Blandy 2006-02-05 20:01 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Jim Blandy @ 2006-02-05 7:39 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gdb-patches On 2/4/06, Eli Zaretskii <eliz@gnu.org> wrote: > > Date: Sat, 4 Feb 2006 21:01:14 -0500 > > From: Daniel Jacobowitz <drow@false.org> > > > > I think that mingw32 hosting support and mingw32 native support can be > > treated separately; do you disagree? > > I do. I think they should be treated together, as having a cross > debugger that cannot debug natively is kinda silly. I don't think it's silly. If you are using Windows as a platform for cross-development, you may not even have shelled out the bucks for a native compiler. In that situation, why would it be ridiculous to have a debugger that, like your compiler, is only useful debugging programs on your cross target? Also, the kinds of things needed to host GDB on a platform are best kept partitioned away from the stuff needed for doing native target debugging, simply as a matter of design. It's a simple matter of separation of concerns. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 7:39 ` Jim Blandy @ 2006-02-05 20:01 ` Eli Zaretskii 2006-02-05 20:20 ` Daniel Jacobowitz 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 20:01 UTC (permalink / raw) To: Jim Blandy; +Cc: gdb-patches > Date: Sat, 4 Feb 2006 23:39:17 -0800 > From: Jim Blandy <jimb@red-bean.com> > Cc: gdb-patches@sourceware.org > > On 2/4/06, Eli Zaretskii <eliz@gnu.org> wrote: > > > Date: Sat, 4 Feb 2006 21:01:14 -0500 > > > From: Daniel Jacobowitz <drow@false.org> > > > > > > I think that mingw32 hosting support and mingw32 native support can be > > > treated separately; do you disagree? > > > > I do. I think they should be treated together, as having a cross > > debugger that cannot debug natively is kinda silly. > > I don't think it's silly. If you are using Windows as a platform for > cross-development, you may not even have shelled out the bucks for a > native compiler. In that situation, why would it be ridiculous to > have a debugger that, like your compiler, is only useful debugging > programs on your cross target? Reality check: how many other non-embedded platforms have their cross- and native targets separated? > Also, the kinds of things needed to host GDB on a platform are best > kept partitioned away from the stuff needed for doing native target > debugging, simply as a matter of design. It's a simple matter of > separation of concerns. Then please explain why do we compile ser-unix.c with native Unix targets, and ser-go32.c with the DJGPP native target. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 20:01 ` Eli Zaretskii @ 2006-02-05 20:20 ` Daniel Jacobowitz 2006-02-05 22:45 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-05 20:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Jim Blandy, gdb-patches On Sun, Feb 05, 2006 at 10:00:24PM +0200, Eli Zaretskii wrote: > > Date: Sat, 4 Feb 2006 23:39:17 -0800 > > From: Jim Blandy <jimb@red-bean.com> > > Cc: gdb-patches@sourceware.org > > > > On 2/4/06, Eli Zaretskii <eliz@gnu.org> wrote: > > > > Date: Sat, 4 Feb 2006 21:01:14 -0500 > > > > From: Daniel Jacobowitz <drow@false.org> > > > > > > > > I think that mingw32 hosting support and mingw32 native support can be > > > > treated separately; do you disagree? > > > > > > I do. I think they should be treated together, as having a cross > > > debugger that cannot debug natively is kinda silly. > > > > I don't think it's silly. If you are using Windows as a platform for > > cross-development, you may not even have shelled out the bucks for a > > native compiler. In that situation, why would it be ridiculous to > > have a debugger that, like your compiler, is only useful debugging > > programs on your cross target? > > Reality check: how many other non-embedded platforms have their cross- > and native targets separated? Could you clarify what you mean by this? As far as I can interpret it, the answer is "every". We have three kinds of support. Cross target, native target, and general host. We've labored for years to keep cross target and native target completely separate. General host is normally distributed through all of GDB - except for e.g. the serial files. You never build a debugger with just one; normally you want one from column A, zero or one from column B, and one from column C. In a pure multi-arch world you want one or more from column A, but the other columns are unchanged. > > Also, the kinds of things needed to host GDB on a platform are best > > kept partitioned away from the stuff needed for doing native target > > debugging, simply as a matter of design. It's a simple matter of > > separation of concerns. > > Then please explain why do we compile ser-unix.c with native Unix > targets, and ser-go32.c with the DJGPP native target. I'd call that a perfect example of Jim's point. You don't _need_ ser-unix.c to do native debugging; that's the partitioning at work. It's included as a side effect of the fact that a native target depends on also having a cross target. Thus a native Unix GDB can debug a remote Unix program (and I do this every week). A native DJGPP GDB could also debug a remote DJGPP program (if there were an appropriate remote stub, I don't know). -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 20:20 ` Daniel Jacobowitz @ 2006-02-05 22:45 ` Eli Zaretskii 2006-02-06 2:38 ` Daniel Jacobowitz 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 22:45 UTC (permalink / raw) To: gdb-patches > Date: Sun, 5 Feb 2006 15:20:27 -0500 > From: Daniel Jacobowitz <drow@false.org> > Cc: Jim Blandy <jimb@red-bean.com>, gdb-patches@sourceware.org > > > Reality check: how many other non-embedded platforms have their cross- > > and native targets separated? > > Could you clarify what you mean by this? As far as I can interpret it, > the answer is "every". ``Separated'' as in ``not in the same executable''. > > > Also, the kinds of things needed to host GDB on a platform are best > > > kept partitioned away from the stuff needed for doing native target > > > debugging, simply as a matter of design. It's a simple matter of > > > separation of concerns. > > > > Then please explain why do we compile ser-unix.c with native Unix > > targets, and ser-go32.c with the DJGPP native target. > > I'd call that a perfect example of Jim's point. It's also a perfect example of my point: cross-debugger is usually part of the same build as the native one. Anyway, I'm not interested in continuing this discussion. I hoped we could have a separate MinGW target, native and otherwise, but since it looks like there's no agreement, let's move on. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 22:45 ` Eli Zaretskii @ 2006-02-06 2:38 ` Daniel Jacobowitz 0 siblings, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 2:38 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 12:45:25AM +0200, Eli Zaretskii wrote: > > Date: Sun, 5 Feb 2006 15:20:27 -0500 > > From: Daniel Jacobowitz <drow@false.org> > > Cc: Jim Blandy <jimb@red-bean.com>, gdb-patches@sourceware.org > > > > > Reality check: how many other non-embedded platforms have their cross- > > > and native targets separated? > > > > Could you clarify what you mean by this? As far as I can interpret it, > > the answer is "every". > > ``Separated'' as in ``not in the same executable''. I don't see how that applies. I'm talking about the support needed for an arm-elf debugger which runs on mingw32, as opposed to a mingw32 debugger which runs on mingw32. There's other platforms that can support cross but not native, e.g. I believe ia64-hpux can handle cross debugging even without a GDB port. Anyway. Moving on, agreed. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-05 0:27 ` Christopher Faylor 2006-02-05 2:01 ` Daniel Jacobowitz @ 2006-02-05 4:48 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-05 4:48 UTC (permalink / raw) To: gdb-patches > Date: Sat, 4 Feb 2006 19:27:10 -0500 > From: Christopher Faylor <me@cgf.cx> > > >Then perhaps we should create a new -nat.c file, say mingw-nat.c, and > >maintain it separately. (For that matter, I'd really love to see > >win32-nat.c be renamed to cygwin-nat.c, since that's what it really is > >going to be.) If neither Daniel nor Mark M. can afford becoming > >responsible maintainers for such a new native file, I volunteer to do > >my best to do that. > > > >Would you agree to such a solution? > > That is *exactly* what I expected to come out of this discussion. And, > I suspect that it won't just be win32-nat.c which will have to be changed. > There will be a header file or two, and probably some configuration magic. Whatever it takes, yes. > And, really, it is a bad design decision to have two different files > using the same debugging mechanism. If this was to be done right then > win32-nat.c should somehow be factored out further so that the common > bits can be shared. Cygwin and MinGW are alike enough that they should > share code. That would be going back to where you don't want to: to a maintenance burden on you, due to sharing code with MinGW. > I think Ulrich's point was that wasting time tinkering with code to make > it work better with non-POSIX platforms was counter-productive for > projects which are designed to run on same. I think Ulrich's point was that it would be waste of Ulrich's time to do what Ulrich doesn't want to do. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 23:25 ` Mark Kettenis 2006-02-03 23:39 ` Christopher Faylor @ 2006-02-04 1:06 ` Jim Blandy 2006-02-04 3:00 ` Daniel Jacobowitz ` (2 more replies) 2006-03-02 0:53 ` Michael Snyder 2 siblings, 3 replies; 98+ messages in thread From: Jim Blandy @ 2006-02-04 1:06 UTC (permalink / raw) To: Mark Kettenis; +Cc: drow, gdb-patches On 2/3/06, Mark Kettenis <mark.kettenis@xs4all.nl> wrote: > GDB is written for POSIX systems. It's clear that Windows isn't even > remotely POSIX compliant. Technically, Stallman would say that GDB is written for GNU systems, and *all* non-GNU support is a distraction. Iffy. So I'm not sure you really want to push that argument too hard. But I agree, about the patch. If we had safe_strerror try a macro which the nm-*.h file could define, I'd feel better about the change. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 1:06 ` Jim Blandy @ 2006-02-04 3:00 ` Daniel Jacobowitz 2006-02-04 6:22 ` Ian Lance Taylor 2006-02-04 10:24 ` Eli Zaretskii 2006-02-04 10:20 ` Eli Zaretskii 2006-02-04 13:14 ` Mark Kettenis 2 siblings, 2 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-04 3:00 UTC (permalink / raw) To: Jim Blandy; +Cc: Mark Kettenis, gdb-patches On Fri, Feb 03, 2006 at 05:06:11PM -0800, Jim Blandy wrote: > On 2/3/06, Mark Kettenis <mark.kettenis@xs4all.nl> wrote: > > GDB is written for POSIX systems. It's clear that Windows isn't even > > remotely POSIX compliant. > > Technically, Stallman would say that GDB is written for GNU systems, > and *all* non-GNU support is a distraction. Iffy. So I'm not sure > you really want to push that argument too hard. > > But I agree, about the patch. > > If we had safe_strerror try a macro which the nm-*.h file could > define, I'd feel better about the change. Except we're trying to kill the aggravating NM files, remember? Also, it would be an XM file, and we've already successfully killed those (or most of them). We replaced them with autoconf magic, which is not fundamentally different from the USE_WIN32API bits. I'll be back to the rest of this in a separate message. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 3:00 ` Daniel Jacobowitz @ 2006-02-04 6:22 ` Ian Lance Taylor 2006-02-04 10:29 ` Eli Zaretskii 2006-02-04 10:24 ` Eli Zaretskii 1 sibling, 1 reply; 98+ messages in thread From: Ian Lance Taylor @ 2006-02-04 6:22 UTC (permalink / raw) To: Daniel Jacobowitz; +Cc: Jim Blandy, Mark Kettenis, gdb-patches Daniel Jacobowitz <drow@false.org> writes: > Except we're trying to kill the aggravating NM files, remember? Also, > it would be an XM file, and we've already successfully killed those (or > most of them). We replaced them with autoconf magic, which is not > fundamentally different from the USE_WIN32API bits. USE_WIN32API is different because it selects an API which is not Unix like. It's the only non-Unix-like host which gdb runs on today. I think it would be reasonable to have special .h and .c files to handle Windows code. You can call them XM files, or you can call them something else. Scattering Windows code through the Unix code seems like a bad idea to me. I think that scattering autoconf magic through the code is also a bad idea, and should be avoided. But I think it is less bad, because at least the code all looks the same. Windows code does not. Ian ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 6:22 ` Ian Lance Taylor @ 2006-02-04 10:29 ` Eli Zaretskii 2006-02-04 13:53 ` Mark Kettenis 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 10:29 UTC (permalink / raw) To: Ian Lance Taylor; +Cc: gdb-patches > Cc: Jim Blandy <jimb@red-bean.com>, Mark Kettenis <mark.kettenis@xs4all.nl>, gdb-patches@sourceware.org > From: Ian Lance Taylor <ian@airs.com> > Date: 03 Feb 2006 22:22:10 -0800 > > It's the only non-Unix-like host which gdb runs on today. That's not true: there's the DJGPP (a.k.a. MS-DOS) port of GDB, where GDB still runs. It just needs less DOS-specific code because it has a Posix-compliant library (which includes `select' emulation). But you can still see an occasional "#ifdef __MSDOS__" or "#ifdef __DJGPP__" or "#ifdef __GO32__" in the sources. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 10:29 ` Eli Zaretskii @ 2006-02-04 13:53 ` Mark Kettenis 2006-02-04 15:17 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Mark Kettenis @ 2006-02-04 13:53 UTC (permalink / raw) To: eliz; +Cc: ian, gdb-patches > Date: Sat, 04 Feb 2006 12:29:22 +0200 > From: Eli Zaretskii <eliz@gnu.org> > > > Cc: Jim Blandy <jimb@red-bean.com>, Mark Kettenis <mark.kettenis@xs4all.nl>, gdb-patches@sourceware.org > > From: Ian Lance Taylor <ian@airs.com> > > Date: 03 Feb 2006 22:22:10 -0800 > > > > It's the only non-Unix-like host which gdb runs on today. > > That's not true: there's the DJGPP (a.k.a. MS-DOS) port of GDB, where > GDB still runs. It just needs less DOS-specific code because it has a > Posix-compliant library (which includes `select' emulation). But you > can still see an occasional "#ifdef __MSDOS__" or "#ifdef __DJGPP__" > or "#ifdef __GO32__" in the sources. But DJGPP at least takes the trouble of providing that POSIX compatible library. And there is a Free (as in Freedom) MS-DOS available (don't know if DJGPP runs on it though). That said, I'd probably object if someone would contribute a DJGPP port with all its #ifdef's today. But we've had DJGPP support in the tree for ages, and as long as there's someone actively working on DJGPP support I feel that I can't ask for its removal. Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 13:53 ` Mark Kettenis @ 2006-02-04 15:17 ` Eli Zaretskii 0 siblings, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 15:17 UTC (permalink / raw) To: Mark Kettenis; +Cc: ian, gdb-patches > Date: Sat, 4 Feb 2006 14:52:47 +0100 (CET) > From: Mark Kettenis <mark.kettenis@xs4all.nl> > CC: ian@airs.com, gdb-patches@sourceware.org > > That said, I'd probably object if someone would contribute a DJGPP > port with all its #ifdef's today. Sometimes, there's no other good way, if the original code was too entrenched in Posix assumptions (which isn't portability in my book, btw). Again, I wonder why you didn't back me up back when Mark Mitchell submitted his `select' emulation and I suggested to encapsulate the Windows-specific bits in a Windows-specific file. Did you change your views since then? ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 3:00 ` Daniel Jacobowitz 2006-02-04 6:22 ` Ian Lance Taylor @ 2006-02-04 10:24 ` Eli Zaretskii 2006-02-04 15:33 ` Mark Kettenis 1 sibling, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 10:24 UTC (permalink / raw) To: gdb-patches; +Cc: jimb > Date: Fri, 3 Feb 2006 22:00:25 -0500 > From: Daniel Jacobowitz <drow@false.org> > Cc: Mark Kettenis <mark.kettenis@xs4all.nl>, gdb-patches@sourceware.org > > > If we had safe_strerror try a macro which the nm-*.h file could > > define, I'd feel better about the change. > > Except we're trying to kill the aggravating NM files, remember? Also, > it would be an XM file, and we've already successfully killed those (or > most of them). We replaced them with autoconf magic, which is not > fundamentally different from the USE_WIN32API bits. Right. But we still can separate system-specific code from system-independent one. One way is to have a function which is only defined on systems which need it. Something like this: #ifdef NEED_FOOBAR foobar (); #endif with the body of `foobar' hiding all the rest on a Windows-specific source file. I think such a method minimizes the bad impact of ifdef's and does not annoy too much when one reads the sources. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 10:24 ` Eli Zaretskii @ 2006-02-04 15:33 ` Mark Kettenis 2006-02-04 15:35 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Mark Kettenis @ 2006-02-04 15:33 UTC (permalink / raw) To: eliz; +Cc: gdb-patches, jimb > Date: Sat, 04 Feb 2006 12:24:31 +0200 > From: Eli Zaretskii <eliz@gnu.org> > > > Date: Fri, 3 Feb 2006 22:00:25 -0500 > > From: Daniel Jacobowitz <drow@false.org> > > Cc: Mark Kettenis <mark.kettenis@xs4all.nl>, gdb-patches@sourceware.org > > > > > If we had safe_strerror try a macro which the nm-*.h file could > > > define, I'd feel better about the change. > > > > Except we're trying to kill the aggravating NM files, remember? Also, > > it would be an XM file, and we've already successfully killed those (or > > most of them). We replaced them with autoconf magic, which is not > > fundamentally different from the USE_WIN32API bits. > > Right. > > But we still can separate system-specific code from system-independent > one. One way is to have a function which is only defined on systems > which need it. Something like this: > > #ifdef NEED_FOOBAR > foobar (); > #endif > > with the body of `foobar' hiding all the rest on a Windows-specific > source file. I think such a method minimizes the bad impact of > ifdef's and does not annoy too much when one reads the sources. This is slightly better, but starts to get problematic if there are many places in the code where this is necessary. Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 15:33 ` Mark Kettenis @ 2006-02-04 15:35 ` Eli Zaretskii 0 siblings, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 15:35 UTC (permalink / raw) To: Mark Kettenis; +Cc: gdb-patches, jimb > Date: Sat, 4 Feb 2006 16:32:51 +0100 (CET) > From: Mark Kettenis <mark.kettenis@xs4all.nl> > CC: gdb-patches@sourceware.org, jimb@red-bean.com > > > #ifdef NEED_FOOBAR > > foobar (); > > #endif > > > > with the body of `foobar' hiding all the rest on a Windows-specific > > source file. I think such a method minimizes the bad impact of > > ifdef's and does not annoy too much when one reads the sources. > > This is slightly better, but starts to get problematic if there are > many places in the code where this is necessary. I think we can worry about that when we come to that point. For now, I'll be happy just to reach consensus on using this method ;-) ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 1:06 ` Jim Blandy 2006-02-04 3:00 ` Daniel Jacobowitz @ 2006-02-04 10:20 ` Eli Zaretskii 2006-02-04 13:14 ` Mark Kettenis 2 siblings, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 10:20 UTC (permalink / raw) To: Jim Blandy; +Cc: mark.kettenis, drow, gdb-patches > Date: Fri, 3 Feb 2006 17:06:11 -0800 > From: Jim Blandy <jimb@red-bean.com> > Cc: drow@false.org, gdb-patches@sourceware.org > > If we had safe_strerror try a macro which the nm-*.h file could > define, I'd feel better about the change. Which to me sounds strange: when Mark M. suggested his original patch for the event loop, I asked for the Windows specific parts to be put in win32-nat.c, instead of littering a system-independent file. However, no one supported me in that request then, AFAIR. Would people who argue for cleansing GDB sources of non-Posix filth please take a good look at event-loop.c? If we agree to having that code there, I don't see how we can possibly lecture Daniel about keeping system-dependent stuff out. We need to be consistent about our standards. (For the record, in that past discussion about gdb_select I mentioned above, Daniel argued for having the code in event-loop.c, so Daniel _is_ consistent about _his_ standards.) ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 1:06 ` Jim Blandy 2006-02-04 3:00 ` Daniel Jacobowitz 2006-02-04 10:20 ` Eli Zaretskii @ 2006-02-04 13:14 ` Mark Kettenis 2006-02-05 7:41 ` Jim Blandy 2 siblings, 1 reply; 98+ messages in thread From: Mark Kettenis @ 2006-02-04 13:14 UTC (permalink / raw) To: jimb; +Cc: drow, gdb-patches > Date: Fri, 3 Feb 2006 17:06:11 -0800 > From: Jim Blandy <jimb@red-bean.com> > > On 2/3/06, Mark Kettenis <mark.kettenis@xs4all.nl> wrote: > > GDB is written for POSIX systems. It's clear that Windows isn't even > > remotely POSIX compliant. > > Technically, Stallman would say that GDB is written for GNU systems, > and *all* non-GNU support is a distraction. Iffy. So I'm not sure > you really want to push that argument too hard. Guess I'l have to start GNU/OpenBSD ;-). Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 13:14 ` Mark Kettenis @ 2006-02-05 7:41 ` Jim Blandy 0 siblings, 0 replies; 98+ messages in thread From: Jim Blandy @ 2006-02-05 7:41 UTC (permalink / raw) To: Mark Kettenis; +Cc: drow, gdb-patches On 2/4/06, Mark Kettenis <mark.kettenis@xs4all.nl> wrote: > Guess I'l have to start GNU/OpenBSD ;-). Exactly. My point was that arguments that start with "GDB is meant to run on system X" get silly quickly. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 23:25 ` Mark Kettenis 2006-02-03 23:39 ` Christopher Faylor 2006-02-04 1:06 ` Jim Blandy @ 2006-03-02 0:53 ` Michael Snyder 2 siblings, 0 replies; 98+ messages in thread From: Michael Snyder @ 2006-03-02 0:53 UTC (permalink / raw) To: Mark Kettenis; +Cc: drow, gdb-patches, Fred Fish Mark Kettenis wrote: > GDB is written for POSIX systems. Hmmmm, don't know about that. GDB was written for the Hurd. Even I don't go back that far, but Fred Fish does -- I see a Usenet post from Fred saying that he had version 1.1 of gdb back in January of '87. (Hey Fred -- any chance you've still got that? <g>) Posix was being whispered about at least as early as '86, but I don't think GNU was conceived as being Posix-compliant until way later (if at all). ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 21:55 RFA: Support Windows extended error numbers in safe_strerror Daniel Jacobowitz 2006-02-03 23:25 ` Mark Kettenis @ 2006-02-04 11:58 ` Eli Zaretskii 2006-02-04 14:53 ` Daniel Jacobowitz 2006-02-06 17:35 ` Daniel Jacobowitz 2006-02-10 21:56 ` Daniel Jacobowitz 3 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 11:58 UTC (permalink / raw) To: gdb-patches > Date: Fri, 3 Feb 2006 16:54:55 -0500 > From: Daniel Jacobowitz <drow@false.org> > > This is an improved version of a patch Mark Mitchell submitted last > year. If you give strerror() anything above 42 (sys_nerr) on Windows, > it gives you back "Unknown error" - particularly unfortunate since > WSAECONNREFUSED is way above there, so connecting to a closed socket > will give you a generic error message. This patch lets us try an > OS-specific interface to fetch an error string. > > [Actually you need my next patch too to get the connection refused message; > right now you'll get a timeout.] > > Any comments on this patch? > > -- > Daniel Jacobowitz > CodeSourcery > > 2006-02-03 Daniel Jacobowitz <dan@codesourcery.com> > > * utils.c (safe_strerror): Try to use FormatMessage for otherwise > unknown messages on Windows. How about if you put this in some function on win32-nat.c, and then leave only the conditional call to that function in utils.c? Actualy, perhaps we don't need any ifdef at all, since I think there's no way the argument can be greater than sys_nerr on other platforms, right? Otherwise, I'm okay with this patch. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 11:58 ` Eli Zaretskii @ 2006-02-04 14:53 ` Daniel Jacobowitz 2006-02-04 15:09 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-04 14:53 UTC (permalink / raw) To: gdb-patches On Sat, Feb 04, 2006 at 01:58:45PM +0200, Eli Zaretskii wrote: > How about if you put this in some function on win32-nat.c, and then > leave only the conditional call to that function in utils.c? Actualy, > perhaps we don't need any ifdef at all, since I think there's no way > the argument can be greater than sys_nerr on other platforms, right? Well, it can't be in win32-nat.c - it's for Windows hosting rather than Windows native. But I could move the code to a new Windows-specific file, like ser-windows.o introduced in my other patch, and call it there. I've no objection to that. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 14:53 ` Daniel Jacobowitz @ 2006-02-04 15:09 ` Eli Zaretskii 2006-02-04 15:57 ` David Ayers 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-04 15:09 UTC (permalink / raw) To: gdb-patches > Date: Sat, 4 Feb 2006 09:53:32 -0500 > From: Daniel Jacobowitz <drow@false.org> > > Well, it can't be in win32-nat.c - it's for Windows hosting rather > than Windows native. But I could move the code to a new > Windows-specific file, like ser-windows.o introduced in my other > patch, and call it there. I've no objection to that. ser-windows.c would be good, I think. Does anyone else object to that? ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-04 15:09 ` Eli Zaretskii @ 2006-02-04 15:57 ` David Ayers 0 siblings, 0 replies; 98+ messages in thread From: David Ayers @ 2006-02-04 15:57 UTC (permalink / raw) To: gdb-patches Eli Zaretskii schrieb: >>Date: Sat, 4 Feb 2006 09:53:32 -0500 >>From: Daniel Jacobowitz <drow@false.org> >> >>Well, it can't be in win32-nat.c - it's for Windows hosting rather >>than Windows native. But I could move the code to a new >>Windows-specific file, like ser-windows.o introduced in my other >>patch, and call it there. I've no objection to that. > > > ser-windows.c would be good, I think. > <de-lurk> Well I think that treating cygwin and mingw as separate platforms is something that is creeping into many GNU projects. (Well I suppose that development is not really confined to GNU projects). But I think if both cygwin and mingw will be supported that it is important recognize them as different platforms. Therefor it seems any project would be well advised to avoid the term 'windows' and use 'cygwin' and 'mingw' respectively. IOW, I'd suggest ser-mingw.c instead. </de-lurk> Cheers, David ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 21:55 RFA: Support Windows extended error numbers in safe_strerror Daniel Jacobowitz 2006-02-03 23:25 ` Mark Kettenis 2006-02-04 11:58 ` Eli Zaretskii @ 2006-02-06 17:35 ` Daniel Jacobowitz 2006-02-06 17:54 ` Christopher Faylor ` (4 more replies) 2006-02-10 21:56 ` Daniel Jacobowitz 3 siblings, 5 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 17:35 UTC (permalink / raw) To: gdb-patches On Fri, Feb 03, 2006 at 04:54:55PM -0500, Daniel Jacobowitz wrote: > This is an improved version of a patch Mark Mitchell submitted last > year. If you give strerror() anything above 42 (sys_nerr) on Windows, > it gives you back "Unknown error" - particularly unfortunate since > WSAECONNREFUSED is way above there, so connecting to a closed socket > will give you a generic error message. This patch lets us try an > OS-specific interface to fetch an error string. > > [Actually you need my next patch too to get the connection refused message; > right now you'll get a timeout.] > > Any comments on this patch? There were plenty :-) Is this better? We had finally eliminated the XM files in favor of autoconf checks. This patch re-adds an xm-*.h header file, but I think it's still the best of our options. We can restrict our use of these headers to things where autoconf is a bad fit - like right here. Rather than creating a .mh file and setting XM_FILE there, I added this and an equivalent to TDEPFILES to configure.host. This is in line with discussion I vaguely remember from last year that the makefile fragments were not a preferable solution for this sort of thing. I do agree that it looks more elegant this way. -- Daniel Jacobowitz CodeSourcery 2006-02-06 Daniel Jacobowitz <dan@codesourcery.com> * Makefile.in (mingw-hdep.o): New dependencies. * configure.ac: Add gdb_host_obs to CONFIG_OBS. Don't fetch hostfile from host_makefile_frag. Remove obsolete comment. Rename hostfile to gdb_hostfile. * configure: Regenerated. * configure.host: Document gdb_host_obs and gdb_hostfile. Add an entry for i[34567]86-*-mingw32*. * mingw-hdep.c, config/i386/xm-mingw.h: New files. Index: src/gdb/Makefile.in =================================================================== --- src.orig/gdb/Makefile.in 2006-02-06 10:58:30.000000000 -0500 +++ src/gdb/Makefile.in 2006-02-06 12:27:15.000000000 -0500 @@ -2280,6 +2280,7 @@ memattr.o: memattr.c $(defs_h) $(command $(target_h) $(value_h) $(language_h) $(gdb_string_h) mem-break.o: mem-break.c $(defs_h) $(symtab_h) $(breakpoint_h) $(inferior_h) \ $(target_h) +mingw-hdep.o: mingw-hdep.c $(defs_h) $(gdb_string_h) minsyms.o: minsyms.c $(defs_h) $(gdb_string_h) $(symtab_h) $(bfd_h) \ $(symfile_h) $(objfiles_h) $(demangle_h) $(value_h) $(cp_abi_h) mips64obsd-nat.o: mips64obsd-nat.c $(defs_h) $(inferior_h) $(regcache_h) \ Index: src/gdb/configure.ac =================================================================== --- src.orig/gdb/configure.ac 2006-02-06 10:58:30.000000000 -0500 +++ src/gdb/configure.ac 2006-02-06 12:06:48.000000000 -0500 @@ -1225,6 +1225,9 @@ case ${host} in esac AC_SUBST(WIN32LIBS) +# Add any host-specific objects to GDB. +CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" + LIBGUI="../libgui/src/libgui.a" GUI_CFLAGS_X="-I${srcdir}/../libgui/src" AC_SUBST(LIBGUI) @@ -1443,10 +1446,6 @@ AC_SUBST_FILE(target_makefile_frag) AC_SUBST(frags) changequote(,)dnl -hostfile=`sed -n ' -s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p -' ${host_makefile_frag}` - targetfile=`sed -n ' s/DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p ' ${target_makefile_frag}` @@ -1494,20 +1493,16 @@ if test "x$build_nlm" = xyes; then AC_CONFIG_SUBDIRS(nlm) fi -# If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or -# nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link -# to an empty version. - files= links= rm -f xm.h xm_h="" -if test "${hostfile}" != ""; then +if test "${gdb_hostfile}" != ""; then xm_h=xm.h - case "${hostfile}" in - xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" ;; - * ) GDB_XM_FILE="${hostfile}" + case "${gdb_hostfile}" in + xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${gdb_hostfile}" ;; + * ) GDB_XM_FILE="${gdb_hostfile}" esac files="${files} ${GDB_XM_FILE}" links="${links} xm.h" Index: src/gdb/configure.host =================================================================== --- src.orig/gdb/configure.host 2005-05-22 15:11:42.000000000 -0400 +++ src/gdb/configure.host 2006-02-06 12:29:41.000000000 -0500 @@ -7,6 +7,8 @@ # gdb_host_float_format host's float floatformat, or 0 # gdb_host_double_format host's double floatformat, or 0 # gdb_host_long_double_format host's long double floatformat, or 0 +# gdb_host_obs host-specific .o files to include +# gdb_hostfile host-specific .h file to include # Map host cpu into the config cpu subdirectory name. # The default is $host_cpu. @@ -64,6 +66,10 @@ i[34567]86-*-netbsdelf* | i[34567]86-*-k gdb_host=nbsdelf ;; i[34567]86-*-netbsd*) gdb_host=nbsdaout ;; i[34567]86-*-go32*) gdb_host=go32 ;; +i[34567]86-*-mingw32*) gdb_host=mingw + gdb_host_obs=mingw-hdep.o + gdb_hostfile=xm-mingw.h + ;; i[34567]86-*-msdosdjgpp*) gdb_host=go32 ;; i[34567]86-*-linux*) gdb_host=linux ;; i[34567]86-*-lynxos*) gdb_host=i386lynx ;; Index: src/gdb/config/i386/xm-mingw.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ src/gdb/config/i386/xm-mingw.h 2006-02-06 12:28:38.000000000 -0500 @@ -0,0 +1,26 @@ +/* Host support for i386 running under MinGW. + + Copyright (C) 2006 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* The standard strerror is too unfriendly in some cases; we provide our + own. */ +char *mingw_strerror (int); +#define strerror mingw_strerror Index: src/gdb/mingw-hdep.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ src/gdb/mingw-hdep.c 2006-02-06 12:29:23.000000000 -0500 @@ -0,0 +1,62 @@ +/* Host support routines for MinGW, for GDB, the GNU debugger. + + Copyright (C) 2006 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +#include "defs.h" +#include "gdb_string.h" + +#include <windows.h> + +/* The Windows runtime implementation of strerror never returns NULL, + but does return a useless string for anything above sys_nerr; + unfortunately this includes all socket-related error codes. + This replacement tries to find a system-provided error message. */ + +char * +mingw_strerror (int errnum) +{ + static char *buffer; + int len; + + if (errnum >= 0 && errnum < sys_nerr) + return strerror (errnum); + + if (buffer) + { + LocalFree (buffer); + buffer = NULL; + } + + if (FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER + | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, errnum, + MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &buffer, 0, NULL) == 0) + return NULL; + + /* Windows error messages end with a period and a CR-LF; strip them + out. */ + len = strlen (buffer); + if (len > 3 && strcmp (buffer + len - 3, ".\r\n") == 0) + buffer[len - 3] = '\0'; + + return buffer; +} ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 17:35 ` Daniel Jacobowitz @ 2006-02-06 17:54 ` Christopher Faylor 2006-02-06 18:23 ` Jim Blandy ` (3 subsequent siblings) 4 siblings, 0 replies; 98+ messages in thread From: Christopher Faylor @ 2006-02-06 17:54 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 12:35:50PM -0500, Daniel Jacobowitz wrote: >On Fri, Feb 03, 2006 at 04:54:55PM -0500, Daniel Jacobowitz wrote: >> This is an improved version of a patch Mark Mitchell submitted last >> year. If you give strerror() anything above 42 (sys_nerr) on Windows, >> it gives you back "Unknown error" - particularly unfortunate since >> WSAECONNREFUSED is way above there, so connecting to a closed socket >> will give you a generic error message. This patch lets us try an >> OS-specific interface to fetch an error string. >> >> [Actually you need my next patch too to get the connection refused message; >> right now you'll get a timeout.] >> >> Any comments on this patch? > >There were plenty :-) Is this better? > >We had finally eliminated the XM files in favor of autoconf checks. >This patch re-adds an xm-*.h header file, but I think it's still >the best of our options. We can restrict our use of these headers >to things where autoconf is a bad fit - like right here. > >Rather than creating a .mh file and setting XM_FILE there, I added >this and an equivalent to TDEPFILES to configure.host. This is in >line with discussion I vaguely remember from last year that the >makefile fragments were not a preferable solution for this sort >of thing. I do agree that it looks more elegant this way. I don't remember this discussion but I think this looks fine. I don't have any problem supporting this so there is no need (yet) to change the maintainer rules. So, if I have the authority to say go ahead and check this in then "Go ahead and check this in". cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 17:35 ` Daniel Jacobowitz 2006-02-06 17:54 ` Christopher Faylor @ 2006-02-06 18:23 ` Jim Blandy 2006-02-06 19:08 ` Eli Zaretskii ` (2 subsequent siblings) 4 siblings, 0 replies; 98+ messages in thread From: Jim Blandy @ 2006-02-06 18:23 UTC (permalink / raw) To: gdb-patches Much better. I agree completely about using alternative mechanisms when autoconf is a bad fit. It's icky to redefine strerror, but given that Windows is returning errno codes that are above sys_nerr, one good ick deserves another. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 17:35 ` Daniel Jacobowitz 2006-02-06 17:54 ` Christopher Faylor 2006-02-06 18:23 ` Jim Blandy @ 2006-02-06 19:08 ` Eli Zaretskii 2006-02-06 19:58 ` Daniel Jacobowitz 2006-02-06 20:59 ` Daniel Jacobowitz 2006-02-06 22:55 ` Mark Kettenis 4 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-06 19:08 UTC (permalink / raw) To: gdb-patches > Date: Mon, 6 Feb 2006 12:35:50 -0500 > From: Daniel Jacobowitz <drow@false.org> > > On Fri, Feb 03, 2006 at 04:54:55PM -0500, Daniel Jacobowitz wrote: > > This is an improved version of a patch Mark Mitchell submitted last > > year. If you give strerror() anything above 42 (sys_nerr) on Windows, > > it gives you back "Unknown error" - particularly unfortunate since > > WSAECONNREFUSED is way above there, so connecting to a closed socket > > will give you a generic error message. This patch lets us try an > > OS-specific interface to fetch an error string. > > > > [Actually you need my next patch too to get the connection refused message; > > right now you'll get a timeout.] > > > > Any comments on this patch? > > There were plenty :-) Is this better? > [...] > +#include "defs.h" > +#include "gdb_string.h" > + > +#include <windows.h> > + > +/* The Windows runtime implementation of strerror never returns NULL, > + but does return a useless string for anything above sys_nerr; > + unfortunately this includes all socket-related error codes. > + This replacement tries to find a system-provided error message. */ > + > +char * > +mingw_strerror (int errnum) > +{ > + static char *buffer; > + int len; > + > + if (errnum >= 0 && errnum < sys_nerr) > + return strerror (errnum); Shouldn't you #undef strerror in this file? Otherwise, this is fine with me. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 19:08 ` Eli Zaretskii @ 2006-02-06 19:58 ` Daniel Jacobowitz 0 siblings, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 19:58 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 09:07:25PM +0200, Eli Zaretskii wrote: > Shouldn't you #undef strerror in this file? Er. Oops. Yes; "source nonexistant.scr" goes into an infinite loop without fixing that. Thanks, I've made the change in my local copy. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 17:35 ` Daniel Jacobowitz ` (2 preceding siblings ...) 2006-02-06 19:08 ` Eli Zaretskii @ 2006-02-06 20:59 ` Daniel Jacobowitz 2006-02-06 22:55 ` Mark Kettenis 4 siblings, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 20:59 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 12:35:50PM -0500, Daniel Jacobowitz wrote: > There were plenty :-) Is this better? > > We had finally eliminated the XM files in favor of autoconf checks. > This patch re-adds an xm-*.h header file, but I think it's still > the best of our options. We can restrict our use of these headers > to things where autoconf is a bad fit - like right here. > > Rather than creating a .mh file and setting XM_FILE there, I added > this and an equivalent to TDEPFILES to configure.host. This is in > line with discussion I vaguely remember from last year that the > makefile fragments were not a preferable solution for this sort > of thing. I do agree that it looks more elegant this way. This version includes the fix Eli spotted, and has been tested a little more carefully. I'm going to wait a while for comments before I check this in. -- Daniel Jacobowitz CodeSourcery 2006-02-06 Daniel Jacobowitz <dan@codesourcery.com> * Makefile.in (mingw-hdep.o): New dependencies. * configure.ac: Add gdb_host_obs to CONFIG_OBS. Don't fetch hostfile from host_makefile_frag. Remove obsolete comment. Rename hostfile to gdb_hostfile. * configure: Regenerated. * configure.host: Document gdb_host_obs and gdb_hostfile. Add an entry for i[34567]86-*-mingw32*. * mingw-hdep.c, config/i386/xm-mingw.h: New files. Index: src/gdb/Makefile.in =================================================================== --- src.orig/gdb/Makefile.in 2006-02-06 10:58:30.000000000 -0500 +++ src/gdb/Makefile.in 2006-02-06 15:21:55.000000000 -0500 @@ -2280,6 +2280,7 @@ memattr.o: memattr.c $(defs_h) $(command $(target_h) $(value_h) $(language_h) $(gdb_string_h) mem-break.o: mem-break.c $(defs_h) $(symtab_h) $(breakpoint_h) $(inferior_h) \ $(target_h) +mingw-hdep.o: mingw-hdep.c $(defs_h) $(gdb_string_h) minsyms.o: minsyms.c $(defs_h) $(gdb_string_h) $(symtab_h) $(bfd_h) \ $(symfile_h) $(objfiles_h) $(demangle_h) $(value_h) $(cp_abi_h) mips64obsd-nat.o: mips64obsd-nat.c $(defs_h) $(inferior_h) $(regcache_h) \ Index: src/gdb/configure =================================================================== --- src.orig/gdb/configure 2006-02-06 10:58:30.000000000 -0500 +++ src/gdb/configure 2006-02-06 15:21:55.000000000 -0500 @@ -991,7 +991,7 @@ esac else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi - cd $ac_popdir + cd "$ac_popdir" done fi @@ -1933,8 +1933,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -1992,8 +1991,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2109,8 +2107,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2164,8 +2161,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2210,8 +2206,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2255,8 +2250,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2619,8 +2613,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2674,8 +2667,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2781,8 +2773,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3081,8 +3072,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3289,8 +3279,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3350,8 +3339,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3430,8 +3418,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3496,8 +3483,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3562,8 +3548,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3627,8 +3612,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3709,8 +3693,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3851,8 +3834,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3990,8 +3972,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4175,8 +4156,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4427,8 +4407,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4622,8 +4601,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4726,8 +4704,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4798,8 +4775,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4896,8 +4872,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5033,8 +5008,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5098,8 +5072,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5154,8 +5127,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5295,8 +5267,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5429,8 +5400,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5707,8 +5677,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6127,8 +6096,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6277,8 +6245,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6434,8 +6401,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6584,8 +6550,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6796,8 +6761,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6860,8 +6824,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6931,8 +6894,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7578,8 +7540,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7683,8 +7644,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7750,8 +7710,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7827,8 +7786,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7882,8 +7840,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7955,8 +7912,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8010,8 +7966,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8091,8 +8046,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8146,8 +8100,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8238,8 +8191,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8293,8 +8245,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8377,8 +8328,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8450,8 +8400,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8505,8 +8454,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8577,8 +8525,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8632,8 +8579,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8758,8 +8704,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8925,8 +8870,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9075,8 +9019,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9142,8 +9085,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9293,8 +9235,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9445,8 +9386,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9595,8 +9535,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9745,8 +9684,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9895,8 +9833,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10047,8 +9984,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10197,8 +10133,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10347,8 +10282,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10497,8 +10431,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10647,8 +10580,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10797,8 +10729,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10944,8 +10875,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11011,8 +10941,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11162,8 +11091,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11313,8 +11241,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11463,8 +11390,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11613,8 +11539,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11763,8 +11688,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11910,8 +11834,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11978,8 +11901,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12130,8 +12052,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12280,8 +12201,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12447,8 +12367,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12597,8 +12516,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12744,8 +12662,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12815,8 +12732,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12968,8 +12884,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13038,8 +12953,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13108,8 +13022,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13180,8 +13093,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13250,8 +13162,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13322,8 +13233,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13392,8 +13302,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13462,8 +13371,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13538,8 +13446,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13582,8 +13489,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13648,8 +13554,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13692,8 +13597,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13771,8 +13675,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13836,8 +13739,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13902,8 +13804,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14015,8 +13916,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14076,8 +13976,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14154,8 +14053,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14236,8 +14134,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14378,8 +14275,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14517,8 +14413,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14702,8 +14597,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14942,8 +14836,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15011,8 +14904,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15197,8 +15089,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15240,18 +15131,24 @@ else ac_cv_func_fork_works=cross else cat >conftest.$ac_ext <<_ACEOF -/* By Ruediger Kuhlmann. */ - #include <sys/types.h> - #if HAVE_UNISTD_H - # include <unistd.h> - #endif - /* Some systems only have a dummy stub for fork() */ - int main () - { - if (fork() < 0) - exit (1); - exit (0); - } +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* By Ruediger Kuhlmann. */ + if (fork() < 0) + exit (1); + exit (0); + + ; + return 0; +} _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 @@ -15531,8 +15428,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15634,8 +15530,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15736,8 +15631,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15838,8 +15732,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15940,8 +15833,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16043,8 +15935,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16147,8 +16038,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16249,8 +16139,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16351,8 +16240,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16453,8 +16341,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16555,8 +16442,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16636,8 +16522,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16709,8 +16594,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16776,8 +16660,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16825,8 +16708,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16977,8 +16859,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17042,8 +16923,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17111,8 +16991,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17190,8 +17069,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17237,8 +17115,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17304,8 +17181,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17367,8 +17243,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17433,8 +17308,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17478,8 +17352,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17544,8 +17417,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17589,8 +17461,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17655,8 +17526,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17718,8 +17588,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17782,8 +17651,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17846,8 +17714,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17954,8 +17821,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18019,8 +17885,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18084,8 +17949,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18149,8 +18013,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18214,8 +18077,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18279,8 +18141,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18344,8 +18205,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18409,8 +18269,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18474,8 +18333,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18539,8 +18397,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18604,8 +18461,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18669,8 +18525,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18734,8 +18589,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18799,8 +18653,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18931,8 +18784,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18996,8 +18848,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19060,8 +18911,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19127,8 +18977,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19191,8 +19040,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19261,8 +19109,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19385,8 +19232,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19579,8 +19425,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19693,8 +19538,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19759,8 +19603,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19824,8 +19667,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19894,8 +19736,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19959,8 +19800,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20024,8 +19864,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20192,8 +20031,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20282,6 +20120,9 @@ _ACEOF esac +# Add any host-specific objects to GDB. +CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" + LIBGUI="../libgui/src/libgui.a" GUI_CFLAGS_X="-I${srcdir}/../libgui/src" @@ -20642,8 +20483,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20894,8 +20734,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -21355,6 +21194,7 @@ fi echo "$as_me:$LINENO: checking for X" >&5 echo $ECHO_N "checking for X... $ECHO_C" >&6 +ac_path_x_has_been_run=yes # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -21447,7 +21287,7 @@ ac_x_header_dirs=' /usr/openwin/share/include' if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Intrinsic.h. + # Guess where to find include files, by looking for a specified header file. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21455,7 +21295,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Intrinsic.h> +#include <X11/Xlib.h> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -21482,7 +21322,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Intrinsic.h"; then + if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi @@ -21496,18 +21336,18 @@ if test "$ac_x_libraries" = no; then # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS - LIBS="-lXt $LIBS" + LIBS="-lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Intrinsic.h> +#include <X11/Xlib.h> int main () { -XtMalloc (0) +XrmInitialize () ; return 0; } @@ -21521,8 +21361,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -21546,7 +21385,7 @@ for ac_dir in `echo "$ac_x_includes $ac_ do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl; do - if test -r $ac_dir/libXt.$ac_extension; then + if test -r $ac_dir/libX11.$ac_extension; then ac_x_libraries=$ac_dir break 2 fi @@ -21582,8 +21421,12 @@ else # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes \ ac_x_includes=$x_includes ac_x_libraries=$x_libraries" - echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 -echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 + # It might be that x_includes is empty (headers are found in the + # standard search path. Then output the corresponding message + ac_out_x_includes=$x_includes + test "x$x_includes" = x && ac_out_x_includes="in standard search path" + echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5 +echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6 fi @@ -21708,10 +21551,6 @@ frags="$frags $target_makefile_frag" -hostfile=`sed -n ' -s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p -' ${host_makefile_frag}` - targetfile=`sed -n ' s/DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p ' ${target_makefile_frag}` @@ -21778,20 +21617,16 @@ subdirs="$subdirs nlm" fi -# If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or -# nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link -# to an empty version. - files= links= rm -f xm.h xm_h="" -if test "${hostfile}" != ""; then +if test "${gdb_hostfile}" != ""; then xm_h=xm.h - case "${hostfile}" in - xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" ;; - * ) GDB_XM_FILE="${hostfile}" + case "${gdb_hostfile}" in + xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${gdb_hostfile}" ;; + * ) GDB_XM_FILE="${gdb_hostfile}" esac files="${files} ${GDB_XM_FILE}" links="${links} xm.h" @@ -21907,8 +21742,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -21958,8 +21792,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -22034,8 +21867,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -23033,11 +22865,6 @@ esac *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ @@ -23076,6 +22903,12 @@ echo "$as_me: error: cannot find input f fi;; esac done` || { (exit 1); exit 1; } + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub @@ -23799,7 +23632,7 @@ echo "$as_me: error: $ac_sub_configure f { (exit 1); exit 1; }; } fi - cd $ac_popdir + cd "$ac_popdir" done fi Index: src/gdb/configure.ac =================================================================== --- src.orig/gdb/configure.ac 2006-02-06 10:58:30.000000000 -0500 +++ src/gdb/configure.ac 2006-02-06 15:21:55.000000000 -0500 @@ -1225,6 +1225,9 @@ case ${host} in esac AC_SUBST(WIN32LIBS) +# Add any host-specific objects to GDB. +CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" + LIBGUI="../libgui/src/libgui.a" GUI_CFLAGS_X="-I${srcdir}/../libgui/src" AC_SUBST(LIBGUI) @@ -1443,10 +1446,6 @@ AC_SUBST_FILE(target_makefile_frag) AC_SUBST(frags) changequote(,)dnl -hostfile=`sed -n ' -s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p -' ${host_makefile_frag}` - targetfile=`sed -n ' s/DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p ' ${target_makefile_frag}` @@ -1494,20 +1493,16 @@ if test "x$build_nlm" = xyes; then AC_CONFIG_SUBDIRS(nlm) fi -# If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or -# nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link -# to an empty version. - files= links= rm -f xm.h xm_h="" -if test "${hostfile}" != ""; then +if test "${gdb_hostfile}" != ""; then xm_h=xm.h - case "${hostfile}" in - xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" ;; - * ) GDB_XM_FILE="${hostfile}" + case "${gdb_hostfile}" in + xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${gdb_hostfile}" ;; + * ) GDB_XM_FILE="${gdb_hostfile}" esac files="${files} ${GDB_XM_FILE}" links="${links} xm.h" Index: src/gdb/configure.host =================================================================== --- src.orig/gdb/configure.host 2005-05-22 15:11:42.000000000 -0400 +++ src/gdb/configure.host 2006-02-06 12:29:41.000000000 -0500 @@ -7,6 +7,8 @@ # gdb_host_float_format host's float floatformat, or 0 # gdb_host_double_format host's double floatformat, or 0 # gdb_host_long_double_format host's long double floatformat, or 0 +# gdb_host_obs host-specific .o files to include +# gdb_hostfile host-specific .h file to include # Map host cpu into the config cpu subdirectory name. # The default is $host_cpu. @@ -64,6 +66,10 @@ i[34567]86-*-netbsdelf* | i[34567]86-*-k gdb_host=nbsdelf ;; i[34567]86-*-netbsd*) gdb_host=nbsdaout ;; i[34567]86-*-go32*) gdb_host=go32 ;; +i[34567]86-*-mingw32*) gdb_host=mingw + gdb_host_obs=mingw-hdep.o + gdb_hostfile=xm-mingw.h + ;; i[34567]86-*-msdosdjgpp*) gdb_host=go32 ;; i[34567]86-*-linux*) gdb_host=linux ;; i[34567]86-*-lynxos*) gdb_host=i386lynx ;; Index: src/gdb/config/i386/xm-mingw.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ src/gdb/config/i386/xm-mingw.h 2006-02-06 15:23:13.000000000 -0500 @@ -0,0 +1,30 @@ +/* Host support for i386 running under MinGW. + + Copyright (C) 2006 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* The standard strerror is too unfriendly in some cases; we provide our + own. */ +char *mingw_strerror (int); + +#ifndef IN_MINGW_HDEP +# define strerror mingw_strerror +#endif + Index: src/gdb/mingw-hdep.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ src/gdb/mingw-hdep.c 2006-02-06 15:22:52.000000000 -0500 @@ -0,0 +1,67 @@ +/* Host support routines for MinGW, for GDB, the GNU debugger. + + Copyright (C) 2006 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* We must define this before including "defs.h", to suppress the + redefinition of strerror. */ +#define IN_MINGW_HDEP + +#include "defs.h" + +#include "gdb_string.h" + +#include <windows.h> + +/* The Windows runtime implementation of strerror never returns NULL, + but does return a useless string for anything above sys_nerr; + unfortunately this includes all socket-related error codes. + This replacement tries to find a system-provided error message. */ + +char * +mingw_strerror (int errnum) +{ + static char *buffer; + int len; + + if (errnum >= 0 && errnum < sys_nerr) + return strerror (errnum); + + if (buffer) + { + LocalFree (buffer); + buffer = NULL; + } + + if (FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER + | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, errnum, + MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &buffer, 0, NULL) == 0) + return NULL; + + /* Windows error messages end with a period and a CR-LF; strip them + out. */ + len = strlen (buffer); + if (len > 3 && strcmp (buffer + len - 3, ".\r\n") == 0) + buffer[len - 3] = '\0'; + + return buffer; +} ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 17:35 ` Daniel Jacobowitz ` (3 preceding siblings ...) 2006-02-06 20:59 ` Daniel Jacobowitz @ 2006-02-06 22:55 ` Mark Kettenis 2006-02-06 22:58 ` Daniel Jacobowitz 4 siblings, 1 reply; 98+ messages in thread From: Mark Kettenis @ 2006-02-06 22:55 UTC (permalink / raw) To: drow; +Cc: gdb-patches > Date: Mon, 6 Feb 2006 12:35:50 -0500 > From: Daniel Jacobowitz <drow@false.org> > > On Fri, Feb 03, 2006 at 04:54:55PM -0500, Daniel Jacobowitz wrote: > > This is an improved version of a patch Mark Mitchell submitted last > > year. If you give strerror() anything above 42 (sys_nerr) on Windows, > > it gives you back "Unknown error" - particularly unfortunate since > > WSAECONNREFUSED is way above there, so connecting to a closed socket > > will give you a generic error message. This patch lets us try an > > OS-specific interface to fetch an error string. > > > > [Actually you need my next patch too to get the connection refused message; > > right now you'll get a timeout.] > > > > Any comments on this patch? > > There were plenty :-) Is this better? > > We had finally eliminated the XM files in favor of autoconf checks. > This patch re-adds an xm-*.h header file, but I think it's still > the best of our options. We can restrict our use of these headers > to things where autoconf is a bad fit - like right here. No please don't do that. There's got to be a better way. Is it possible to write a complete replacement for strerror for MinGW and put that one in mingw-hdep.c? Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 22:55 ` Mark Kettenis @ 2006-02-06 22:58 ` Daniel Jacobowitz 2006-02-08 0:08 ` Daniel Jacobowitz 0 siblings, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-06 22:58 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 11:54:36PM +0100, Mark Kettenis wrote: > > Date: Mon, 6 Feb 2006 12:35:50 -0500 > > From: Daniel Jacobowitz <drow@false.org> > > > > On Fri, Feb 03, 2006 at 04:54:55PM -0500, Daniel Jacobowitz wrote: > > > This is an improved version of a patch Mark Mitchell submitted last > > > year. If you give strerror() anything above 42 (sys_nerr) on Windows, > > > it gives you back "Unknown error" - particularly unfortunate since > > > WSAECONNREFUSED is way above there, so connecting to a closed socket > > > will give you a generic error message. This patch lets us try an > > > OS-specific interface to fetch an error string. > > > > > > [Actually you need my next patch too to get the connection refused message; > > > right now you'll get a timeout.] > > > > > > Any comments on this patch? > > > > There were plenty :-) Is this better? > > > > We had finally eliminated the XM files in favor of autoconf checks. > > This patch re-adds an xm-*.h header file, but I think it's still > > the best of our options. We can restrict our use of these headers > > to things where autoconf is a bad fit - like right here. > > No please don't do that. There's got to be a better way. Is it > possible to write a complete replacement for strerror for MinGW and > put that one in mingw-hdep.c? Could you explain why you don't like this one a little more clearly? Of course it'd be possible to write a complete replacement; I'd just replace the call to the system strerror with a switch statement and copy the strings out of the system runtime, or out of some other standard source. But I don't see why that's any better than this, and it's gratuituous duplication of information, so I'd like to understand what you dislike about it. If it's the #define strerror that you dislike, two comments: - I could put an #ifdef around the one and only call to strerror instead, in utils.c. I'd be perfectly happy with that. - I can't override the system strerror by defining my own copy; that would be prone to breakage due to the workings of __attribute__((dllimport)). I discussed that with Chris before posting this version. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-06 22:58 ` Daniel Jacobowitz @ 2006-02-08 0:08 ` Daniel Jacobowitz 2006-02-08 21:08 ` Mark Kettenis 0 siblings, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-08 0:08 UTC (permalink / raw) To: gdb-patches On Mon, Feb 06, 2006 at 05:58:29PM -0500, Daniel Jacobowitz wrote: > Could you explain why you don't like this one a little more clearly? > > Of course it'd be possible to write a complete replacement; I'd just > replace the call to the system strerror with a switch statement and > copy the strings out of the system runtime, or out of some other > standard source. But I don't see why that's any better than this, and > it's gratuituous duplication of information, so I'd like to understand > what you dislike about it. > > If it's the #define strerror that you dislike, two comments: > > - I could put an #ifdef around the one and only call to strerror > instead, in utils.c. I'd be perfectly happy with that. > > - I can't override the system strerror by defining my own copy; that > would be prone to breakage due to the workings of > __attribute__((dllimport)). I discussed that with Chris before posting > this version. Hi Mark, Have you had a chance to think about this? I realize it's only been a day, but I'm trying not to let these patches linger too long. I'd really like to understand what folks dislike about this patch, so that I can improve it. Same for the other patch; I replied to you about select. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 0:08 ` Daniel Jacobowitz @ 2006-02-08 21:08 ` Mark Kettenis 2006-02-08 21:12 ` Bob Rossi ` (2 more replies) 0 siblings, 3 replies; 98+ messages in thread From: Mark Kettenis @ 2006-02-08 21:08 UTC (permalink / raw) To: drow; +Cc: gdb-patches > Date: Tue, 7 Feb 2006 19:08:55 -0500 > From: Daniel Jacobowitz <drow@false.org> > > On Mon, Feb 06, 2006 at 05:58:29PM -0500, Daniel Jacobowitz wrote: > > Could you explain why you don't like this one a little more clearly? > > > > Of course it'd be possible to write a complete replacement; I'd just > > replace the call to the system strerror with a switch statement and > > copy the strings out of the system runtime, or out of some other > > standard source. But I don't see why that's any better than this, and > > it's gratuituous duplication of information, so I'd like to understand > > what you dislike about it. > > > > If it's the #define strerror that you dislike, two comments: > > > > - I could put an #ifdef around the one and only call to strerror > > instead, in utils.c. I'd be perfectly happy with that. > > > > - I can't override the system strerror by defining my own copy; that > > would be prone to breakage due to the workings of > > __attribute__((dllimport)). I discussed that with Chris before posting > > this version. > > Hi Mark, > > Have you had a chance to think about this? I realize it's only been a > day, but I'm trying not to let these patches linger too long. I'd > really like to understand what folks dislike about this patch, so > that I can improve it. Same for the other patch; I replied to you > about select. I really think that we should drop MinGW support, and that the people who want GDB on windows should work on fixing the apparent problems with Cygwin. I cannot image that Cygwin is unique in having "DLL hell" problem. People certainly must have found a proper solution for this by now. My dislike for this stuff is probably there because where I've been cleaning out much of the host-specific quirks, this MinGW support seems to add back a lot special tweaks, and since Windows is so different from Unix-like systems, there's absolutely no hope, things can be unified. That, together with the reintroduction of xm.h, seems like a giant leap backwards to me. I really don't like that xm.h is back now, since it sets a precedent. People have used these files for quick hacks in the past, and the new xm.h will make it harder to tell people that's not acceptable. I think there is a better approach though. How about having the implementation of safe_strerror() and gdb_select() in mingw-hdep.c and move the (trivial) existing implementations of these functions to a new posix-hdep.c? Speaking about gdb_select(), a really bad thing about your patch is that we now have gdb_select(), but that some code still uses select() and that the difference matters! Oh and there's a pasto in gdb_select.h: +#endif /* !defined(GDB_STRING_H) */ In light of the above, the following comment in ser-tcp.h is a plain lie ;-): /* Serial interface for raw TCP connections on Un*x like systems. Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 21:08 ` Mark Kettenis @ 2006-02-08 21:12 ` Bob Rossi 2006-02-08 23:17 ` Mark Kettenis 2006-02-08 21:54 ` Eli Zaretskii 2006-02-09 22:37 ` Daniel Jacobowitz 2 siblings, 1 reply; 98+ messages in thread From: Bob Rossi @ 2006-02-08 21:12 UTC (permalink / raw) To: Mark Kettenis; +Cc: drow, gdb-patches On Wed, Feb 08, 2006 at 10:07:59PM +0100, Mark Kettenis wrote: > > Date: Tue, 7 Feb 2006 19:08:55 -0500 > > From: Daniel Jacobowitz <drow@false.org> > > > > On Mon, Feb 06, 2006 at 05:58:29PM -0500, Daniel Jacobowitz wrote: > > > Could you explain why you don't like this one a little more clearly? > > > > > > Of course it'd be possible to write a complete replacement; I'd just > > > replace the call to the system strerror with a switch statement and > > > copy the strings out of the system runtime, or out of some other > > > standard source. But I don't see why that's any better than this, and > > > it's gratuituous duplication of information, so I'd like to understand > > > what you dislike about it. > > > > > > If it's the #define strerror that you dislike, two comments: > > > > > > - I could put an #ifdef around the one and only call to strerror > > > instead, in utils.c. I'd be perfectly happy with that. > > > > > > - I can't override the system strerror by defining my own copy; that > > > would be prone to breakage due to the workings of > > > __attribute__((dllimport)). I discussed that with Chris before posting > > > this version. > > > > Hi Mark, > > > > Have you had a chance to think about this? I realize it's only been a > > day, but I'm trying not to let these patches linger too long. I'd > > really like to understand what folks dislike about this patch, so > > that I can improve it. Same for the other patch; I replied to you > > about select. > > I really think that we should drop MinGW support, and that the people > who want GDB on windows should work on fixing the apparent problems > with Cygwin. I cannot image that Cygwin is unique in having "DLL > hell" problem. People certainly must have found a proper solution for > this by now. When I say that there is not a nice way to deliver a Cygwin1.dll, I mean it. It's not a dll hell problem. If anyone can say that this is not true, please let me know. I'm dieing to hear the answer. You simply can not have 2 Cygwin1.dll's on the same system and there is no way that I can see to prevent it from happening. Bob Rossi ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 21:12 ` Bob Rossi @ 2006-02-08 23:17 ` Mark Kettenis 2006-02-08 23:23 ` Daniel Jacobowitz 2006-02-09 0:12 ` Joel Brobecker 0 siblings, 2 replies; 98+ messages in thread From: Mark Kettenis @ 2006-02-08 23:17 UTC (permalink / raw) To: bob; +Cc: drow, gdb-patches > Date: Wed, 8 Feb 2006 16:13:49 -0500 > From: Bob Rossi <bob@brasko.net> > > On Wed, Feb 08, 2006 at 10:07:59PM +0100, Mark Kettenis wrote: > > > Date: Tue, 7 Feb 2006 19:08:55 -0500 > > > From: Daniel Jacobowitz <drow@false.org> > > > > > > On Mon, Feb 06, 2006 at 05:58:29PM -0500, Daniel Jacobowitz wrote: > > > > Could you explain why you don't like this one a little more clearly? > > > > > > > > Of course it'd be possible to write a complete replacement; I'd just > > > > replace the call to the system strerror with a switch statement and > > > > copy the strings out of the system runtime, or out of some other > > > > standard source. But I don't see why that's any better than this, and > > > > it's gratuituous duplication of information, so I'd like to understand > > > > what you dislike about it. > > > > > > > > If it's the #define strerror that you dislike, two comments: > > > > > > > > - I could put an #ifdef around the one and only call to strerror > > > > instead, in utils.c. I'd be perfectly happy with that. > > > > > > > > - I can't override the system strerror by defining my own copy; that > > > > would be prone to breakage due to the workings of > > > > __attribute__((dllimport)). I discussed that with Chris before posting > > > > this version. > > > > > > Hi Mark, > > > > > > Have you had a chance to think about this? I realize it's only been a > > > day, but I'm trying not to let these patches linger too long. I'd > > > really like to understand what folks dislike about this patch, so > > > that I can improve it. Same for the other patch; I replied to you > > > about select. > > > > I really think that we should drop MinGW support, and that the people > > who want GDB on windows should work on fixing the apparent problems > > with Cygwin. I cannot image that Cygwin is unique in having "DLL > > hell" problem. People certainly must have found a proper solution for > > this by now. > > When I say that there is not a nice way to deliver a Cygwin1.dll, I > mean it. It's not a dll hell problem. If anyone can say that this is not > true, please let me know. I'm dieing to hear the answer. > > You simply can not have 2 Cygwin1.dll's on the same system and there is > no way that I can see to prevent it from happening. I always understood having two different versions of a DLL with the same name as being the "DLL hell" problem. Am I wrong? I can't believe that in the last 10 years that people have been talking about this problem, MicroSoft didn't come up with a solution for it. And even if they didn't, the solution is simple: just ship the Cygwin DLL's under a different name. Or just link the Cygwin code statically. Or is that impossible on Windows? Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 23:17 ` Mark Kettenis @ 2006-02-08 23:23 ` Daniel Jacobowitz 2006-02-09 0:12 ` Joel Brobecker 1 sibling, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-08 23:23 UTC (permalink / raw) To: Mark Kettenis; +Cc: bob, gdb-patches On Thu, Feb 09, 2006 at 12:16:02AM +0100, Mark Kettenis wrote: > I always understood having two different versions of a DLL with the > same name as being the "DLL hell" problem. Am I wrong? I can't > believe that in the last 10 years that people have been talking about > this problem, MicroSoft didn't come up with a solution for it. And > even if they didn't, the solution is simple: just ship the Cygwin > DLL's under a different name. Or just link the Cygwin code > statically. Or is that impossible on Windows? My understanding is that this is incompatible with the design of Cygwin, and e.g. the mechanisms it uses to manage "emulated" inter-process resources that don't map obviously onto Windows. Like character devices and TTYs, to give some relevant examples. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 23:17 ` Mark Kettenis 2006-02-08 23:23 ` Daniel Jacobowitz @ 2006-02-09 0:12 ` Joel Brobecker 2006-02-09 1:54 ` Bob Rossi 2006-02-09 7:47 ` Eli Zaretskii 1 sibling, 2 replies; 98+ messages in thread From: Joel Brobecker @ 2006-02-09 0:12 UTC (permalink / raw) To: Mark Kettenis; +Cc: bob, drow, gdb-patches > I always understood having two different versions of a DLL with the > same name as being the "DLL hell" problem. Am I wrong? I can't > believe that in the last 10 years that people have been talking about > this problem, MicroSoft didn't come up with a solution for it. And > even if they didn't, the solution is simple: just ship the Cygwin > DLL's under a different name. Or just link the Cygwin code > statically. Or is that impossible on Windows? I honestly think it's impossible with the current design of cygwin. The problem is that you can only have one cygwin library at a time mapped in the system. No amount of renaming will let you workaround that issue. So as soon as you build GDB against cygwin, you run into a distribution problem that cannot be fixed. We've tried. Believe, we've tried very hard to come with a satisfactory solution that involves cygwin. Cygwin provides a really nice environment, and many engineers here use it heavily. But it comes with its own tradeoffs, and some of them made us decide to try to go back to MinGW. I therefore support, for the little it is worth, Daniel's efforts into contributing their patches. -- Joel ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 0:12 ` Joel Brobecker @ 2006-02-09 1:54 ` Bob Rossi 2006-02-09 7:47 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Bob Rossi @ 2006-02-09 1:54 UTC (permalink / raw) To: Joel Brobecker; +Cc: Mark Kettenis, drow, gdb-patches On Wed, Feb 08, 2006 at 04:12:45PM -0800, Joel Brobecker wrote: > > I always understood having two different versions of a DLL with the > > same name as being the "DLL hell" problem. Am I wrong? I can't > > believe that in the last 10 years that people have been talking about > > this problem, MicroSoft didn't come up with a solution for it. And > > even if they didn't, the solution is simple: just ship the Cygwin > > DLL's under a different name. Or just link the Cygwin code > > statically. Or is that impossible on Windows? > > We've tried. Believe, we've tried very hard to come with a satisfactory > solution that involves cygwin. Yes, I know. (http://sourceware.org/ml/cygwin/2005-03/msg00700.html) I had to literally edit the GDB binary to get it to run on my window's machine because I use Cygwin for other reasons. If you didn't rename the DLL to something of the same char length, it probably would have been impossible. Please see this thread I started about mismatched dll's and a possible solution (towards the end). http://www.cygwin.com/ml/cygwin/2006-02/msg00077.html Very sorry to post this info here, however, I think it's related to the discussion of only shipping GDB with Cygwin. Cygwin does have at least this one *very major* limitation. With that said, I won't bring this up again here. Bob Rossi ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 0:12 ` Joel Brobecker 2006-02-09 1:54 ` Bob Rossi @ 2006-02-09 7:47 ` Eli Zaretskii 2006-02-09 9:18 ` Jim Blandy 1 sibling, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-09 7:47 UTC (permalink / raw) To: brobecker; +Cc: mark.kettenis, bob, drow, gdb-patches > Date: Wed, 8 Feb 2006 16:12:45 -0800 > From: Joel Brobecker <brobecker@adacore.com> > Cc: bob@brasko.net, drow@false.org, gdb-patches@sourceware.org > > I therefore support, for the little it is worth, Daniel's efforts > into contributing their patches. IMHO, it's worth a lot. Mark, I think you should reconsider your ideological antagonism, if indeed there is one, for haveing MinGW code in GDB. If you still think MinGW support should be dropped, please start another thread (I suggest on gdb@) for discussing that. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 7:47 ` Eli Zaretskii @ 2006-02-09 9:18 ` Jim Blandy 0 siblings, 0 replies; 98+ messages in thread From: Jim Blandy @ 2006-02-09 9:18 UTC (permalink / raw) To: Eli Zaretskii; +Cc: brobecker, mark.kettenis, bob, drow, gdb-patches On 2/8/06, Eli Zaretskii <eliz@gnu.org> wrote: > > Date: Wed, 8 Feb 2006 16:12:45 -0800 > > From: Joel Brobecker <brobecker@adacore.com> > > Cc: bob@brasko.net, drow@false.org, gdb-patches@sourceware.org > > > > I therefore support, for the little it is worth, Daniel's efforts > > into contributing their patches. > > IMHO, it's worth a lot. > > Mark, I think you should reconsider your ideological antagonism, if > indeed there is one, for haveing MinGW code in GDB. If you still > think MinGW support should be dropped, please start another thread (I > suggest on gdb@) for discussing that. I'd like to second Eli's thoughts here. I think it's clearly in GDB's interests to insist that the interface between GDB's core code and host-specific code be clean and well-defined. Eli's suggestion that we use global function pointers that the host-specific file can override suits me fine; I prefer it to header files defining macros, for reasons I've explained. But if the interfaces are simple enough, I don't think we have reason to reject ports to other platforms. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 21:08 ` Mark Kettenis 2006-02-08 21:12 ` Bob Rossi @ 2006-02-08 21:54 ` Eli Zaretskii 2006-02-08 23:10 ` Mark Kettenis 2006-02-09 22:37 ` Daniel Jacobowitz 2 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-08 21:54 UTC (permalink / raw) To: Mark Kettenis; +Cc: gdb-patches > Date: Wed, 8 Feb 2006 22:07:59 +0100 (CET) > From: Mark Kettenis <mark.kettenis@xs4all.nl> > CC: gdb-patches@sourceware.org > > I really think that we should drop MinGW support, and that the people > who want GDB on windows should work on fixing the apparent problems > with Cygwin. > [...] > My dislike for this stuff is probably there because where I've been > cleaning out much of the host-specific quirks, this MinGW support > seems to add back a lot special tweaks, and since Windows is so > different from Unix-like systems, there's absolutely no hope, things > can be unified. That, together with the reintroduction of xm.h, seems > like a giant leap backwards to me. I really don't like that xm.h is > back now, since it sets a precedent. People have used these files for > quick hacks in the past, and the new xm.h will make it harder to tell > people that's not acceptable. I think there is a better approach > though. How about having the implementation of safe_strerror() and > gdb_select() in mingw-hdep.c and move the (trivial) existing > implementations of these functions to a new posix-hdep.c? > > Speaking about gdb_select(), a really bad thing about your patch is > that we now have gdb_select(), but that some code still uses select() > and that the difference matters! Mark, can you please make up your mind whether you are talking about coding and design issues, or about ideology? If the problem is xm.h and the select vs gdb_select dichotomy, those are technical problems for which I have no doubt that we will find good solutions. In particular, I firmly believe, based in no small part on my experience of porting GNU software, that your fears of there being ``absolutely no hope'' to have clean sources _and_ MinGW support--that these fears have no real basis, because similar problems were solved elsewhere more than once. But if the problem is that you object in principle to having MinGW support as part of the official codebase, then no amount of coding by Daniel or anyone else will ever get your approval. Which one is it? ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 21:54 ` Eli Zaretskii @ 2006-02-08 23:10 ` Mark Kettenis 2006-02-08 23:22 ` Daniel Jacobowitz 2006-02-09 8:00 ` Eli Zaretskii 0 siblings, 2 replies; 98+ messages in thread From: Mark Kettenis @ 2006-02-08 23:10 UTC (permalink / raw) To: eliz; +Cc: gdb-patches > Date: Wed, 08 Feb 2006 23:54:36 +0200 > From: Eli Zaretskii <eliz@gnu.org> > > > Date: Wed, 8 Feb 2006 22:07:59 +0100 (CET) > > From: Mark Kettenis <mark.kettenis@xs4all.nl> > > CC: gdb-patches@sourceware.org > > > > I really think that we should drop MinGW support, and that the people > > who want GDB on windows should work on fixing the apparent problems > > with Cygwin. > > [...] > > My dislike for this stuff is probably there because where I've been > > cleaning out much of the host-specific quirks, this MinGW support > > seems to add back a lot special tweaks, and since Windows is so > > different from Unix-like systems, there's absolutely no hope, things > > can be unified. That, together with the reintroduction of xm.h, seems > > like a giant leap backwards to me. I really don't like that xm.h is > > back now, since it sets a precedent. People have used these files for > > quick hacks in the past, and the new xm.h will make it harder to tell > > people that's not acceptable. I think there is a better approach > > though. How about having the implementation of safe_strerror() and > > gdb_select() in mingw-hdep.c and move the (trivial) existing > > implementations of these functions to a new posix-hdep.c? > > > > Speaking about gdb_select(), a really bad thing about your patch is > > that we now have gdb_select(), but that some code still uses select() > > and that the difference matters! > > Mark, can you please make up your mind whether you are talking about > coding and design issues, or about ideology? If the problem is xm.h > and the select vs gdb_select dichotomy, those are technical problems > for which I have no doubt that we will find good solutions. In > particular, I firmly believe, based in no small part on my experience > of porting GNU software, that your fears of there being ``absolutely > no hope'' to have clean sources _and_ MinGW support--that these fears > have no real basis, because similar problems were solved elsewhere > more than once. > > But if the problem is that you object in principle to having MinGW > support as part of the official codebase, then no amount of coding by > Daniel or anyone else will ever get your approval. > > Which one is it? I'd rather see us drop the attempt to support MinGW, but if we don't I want to make sure the MinGW support is integrated in such a way that its impact on the rest of the code is as small as possible. Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 23:10 ` Mark Kettenis @ 2006-02-08 23:22 ` Daniel Jacobowitz 2006-02-09 14:40 ` Mark Kettenis 2006-02-09 8:00 ` Eli Zaretskii 1 sibling, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-08 23:22 UTC (permalink / raw) To: Mark Kettenis; +Cc: eliz, gdb-patches On Thu, Feb 09, 2006 at 12:10:26AM +0100, Mark Kettenis wrote: > I'd rather see us drop the attempt to support MinGW, but if we don't I > want to make sure the MinGW support is integrated in such a way that > its impact on the rest of the code is as small as possible. Will you be satisfied with the changes you've described? I am completely wiling to work on the technical issues, but if you remain antagonistic to the very concept, then I'm wasting my time. Again. For the sixth or seventh time. We need to decide this now. I, and I think Mark Mitchell also, are heartily sick of contributing these patches, spending days revising them to satisfy other developers, and then being told the port shouldn't exist at all. There's a flamewar every time we post one; that's mighty good incentive to leave the port broken. I still don't understand your objections, but I definitely understand your alternative: > I really think that we should drop MinGW support, and that the people > who want GDB on windows should work on fixing the apparent problems > with Cygwin. I cannot image that Cygwin is unique in having "DLL > hell" problem. People certainly must have found a proper solution for > this by now. This is taking some work you don't like, by some other people, and telling them to go do something vastly harder and more fragile instead. And just because you can't imagine that the Cygwin situation is unique doesn't mean that it is not; in fact, I'm fairly convinced that it is. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 23:22 ` Daniel Jacobowitz @ 2006-02-09 14:40 ` Mark Kettenis 2006-02-09 15:14 ` Daniel Jacobowitz 2006-02-09 20:24 ` Eli Zaretskii 0 siblings, 2 replies; 98+ messages in thread From: Mark Kettenis @ 2006-02-09 14:40 UTC (permalink / raw) To: Mark Kettenis, eliz, gdb-patches > On Thu, Feb 09, 2006 at 12:10:26AM +0100, Mark Kettenis wrote: >> I'd rather see us drop the attempt to support MinGW, but if we don't I >> want to make sure the MinGW support is integrated in such a way that >> its impact on the rest of the code is as small as possible. > > Will you be satisfied with the changes you've described? I am > completely wiling to work on the technical issues, but if you remain > antagonistic to the very concept, then I'm wasting my time. Again. > For the sixth or seventh time. Trust me, I would not be proposing these changes just to make you do extra work. Yes, if things are changed the way I describe, that would make them acceptable to me. > We need to decide this now. I, and I think Mark Mitchell also, are > heartily sick of contributing these patches, spending days revising > them to satisfy other developers, and then being told the port > shouldn't exist at all. There's a flamewar every time we post one; > that's mighty good incentive to leave the port broken. Sorry, but from Mark's first batch of patches I got the impression that Codesourcery was contributing well-tested code and no further changes would be necessary. I certainly had the impression that we'd get MinGW almost for free. Turns out now that this was too good to be true :(. If I had known all of this beforehand, I'd probably put up more resistance at that time. It seems that nearly all global maintainers still think MinGW support is worth the additional cost, but I had to make sure we realise that there *is* a cost. I'm sorry if this frustrated you and Mark; I can certainly image it would frsutrate me if I were in a similar situation. I would certainly appreciate it if you would address my concerns. Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 14:40 ` Mark Kettenis @ 2006-02-09 15:14 ` Daniel Jacobowitz 2006-02-09 20:24 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-09 15:14 UTC (permalink / raw) To: Mark Kettenis; +Cc: eliz, gdb-patches On Thu, Feb 09, 2006 at 03:40:17PM +0100, Mark Kettenis wrote: > Trust me, I would not be proposing these changes just to make you do extra > work. Yes, if things are changed the way I describe, that would make them > acceptable to me. Thank you. I will work on it. > > We need to decide this now. I, and I think Mark Mitchell also, are > > heartily sick of contributing these patches, spending days revising > > them to satisfy other developers, and then being told the port > > shouldn't exist at all. There's a flamewar every time we post one; > > that's mighty good incentive to leave the port broken. > > Sorry, but from Mark's first batch of patches I got the impression that > Codesourcery was contributing well-tested code and no further changes would > be necessary. I certainly had the impression that we'd get MinGW almost > for free. Turns out now that this was too good to be true :(. > > If I had known all of this beforehand, I'd probably put up more resistance > at that time. It seems that nearly all global maintainers still think MinGW > support is worth the additional cost, but I had to make sure we realise that > there *is* a cost. I'm sorry if this frustrated you and Mark; I can > certainly image it would frsutrate me if I were in a similar situation. > I would certainly appreciate it if you would address my concerns. I answered this a year ago, at our _last_ flamewar about the subject. I distinctly remember apologizing for being unable to predict the future. Mark did say that we were done. I wish he hadn't; all of us on this list know that maintenance for a platform is rarely done. I didn't notice his statement at the time, just reading the archives today. He was done with what he needed for that project, which didn't include serial, and predated some bug reports. You're imposing what I consider a ridiculously high quality threshold on this code. I'm willing to oblige you, because you did so much work cleaning up obsolete host quirks, because it is cleaner, and in hopes that it will decrease the shouting density on this list. But I want to make my opinion perfectly clear - I don't think the changes you've asked for make a _significant_ improvement in the cleanliness of GDB, and I think they will be either irrelevant or mildly detrimental to the future maintainability of the MinGW port, e.g. by leading to code duplication if we needed to override anything more complex than safe_strerror. Anyway, this is the last message I intend to post about the general issue of Windows support. We agreed in April 2005 to support it, we argued it out again just now and agreed again to support it. I will be a happy man if the question of "should we be doing this at all" never comes up again in my vicinity. Thanks. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 14:40 ` Mark Kettenis 2006-02-09 15:14 ` Daniel Jacobowitz @ 2006-02-09 20:24 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-09 20:24 UTC (permalink / raw) To: Mark Kettenis; +Cc: gdb-patches > Date: Thu, 9 Feb 2006 15:40:17 +0100 (CET) > From: "Mark Kettenis" <mark.kettenis@xs4all.nl> > > Sorry, but from Mark's first batch of patches I got the impression that > Codesourcery was contributing well-tested code and no further changes would > be necessary. There's no such thing as ``no further changes necessary'' in programming, Mark, I'm sure you know it. > It seems that nearly all global maintainers still think MinGW > support is worth the additional cost, but I had to make sure we > realise that there *is* a cost. Yes, there _is_ a cost, but until now I'd say it was rather insignificant. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 23:10 ` Mark Kettenis 2006-02-08 23:22 ` Daniel Jacobowitz @ 2006-02-09 8:00 ` Eli Zaretskii 2006-02-09 14:44 ` Mark Kettenis 1 sibling, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-09 8:00 UTC (permalink / raw) To: mark.kettenis; +Cc: gdb-patches > Date: Thu, 9 Feb 2006 00:10:26 +0100 (CET) > From: Mark Kettenis <mark.kettenis@xs4all.nl> > CC: gdb-patches@sourceware.org > > but if we don't [drop the attempt to support MinGW], I want to make > sure the MinGW support is integrated in such a way that its impact > on the rest of the code is as small as possible. Can you state what are your expectations from such a ``as small as possible'' impact? That is, what are the do's and dont's which, if satisfied, will cause you to endorse the MinGW support? I think, if Daniel is about to rewrite his patches yet another time, he deserves to know the rules of the game in advance. For example, here's a suggestion for what I think is more seamless integration of MinGW and other ``illegal aliens'', here for the `select' issue: int gdb_select (...) { if (select_hook) return (*select_hook) (...); else return select (...); } We make `select_hook' a global pointer to a function, and then MinGW can define its own emulation on win32-something.c and plug its address into `select_hook'. An advantage of this method is that the name of the-evil-whatever thingy is never even mentioned. Would this method be okay with you? For that matter, does anyone else object to this? ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 8:00 ` Eli Zaretskii @ 2006-02-09 14:44 ` Mark Kettenis 2006-02-09 14:57 ` Daniel Jacobowitz 2006-02-09 20:26 ` Eli Zaretskii 0 siblings, 2 replies; 98+ messages in thread From: Mark Kettenis @ 2006-02-09 14:44 UTC (permalink / raw) To: Eli Zaretskii; +Cc: mark.kettenis, gdb-patches >> Date: Thu, 9 Feb 2006 00:10:26 +0100 (CET) >> From: Mark Kettenis <mark.kettenis@xs4all.nl> >> CC: gdb-patches@sourceware.org >> >> but if we don't [drop the attempt to support MinGW], I want to make >> sure the MinGW support is integrated in such a way that its impact >> on the rest of the code is as small as possible. > > Can you state what are your expectations from such a ``as small as > possible'' impact? That is, what are the do's and dont's which, if > satisfied, will cause you to endorse the MinGW support? > > I think, if Daniel is about to rewrite his patches yet another time, > he deserves to know the rules of the game in advance. > > For example, here's a suggestion for what I think is more seamless > integration of MinGW and other ``illegal aliens'', here for the > `select' issue: > > int gdb_select (...) > { > if (select_hook) > return (*select_hook) (...); > else > return select (...); > } > > We make `select_hook' a global pointer to a function, and then MinGW > can define its own emulation on win32-something.c and plug its address > into `select_hook'. There is absolutely no reason for this additional complexity. GDB will never be able to run on two different hosts at once. Just having two different implementations and have configure.host choose the apprpriate one will work just fine. Mark ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 14:44 ` Mark Kettenis @ 2006-02-09 14:57 ` Daniel Jacobowitz 2006-02-09 20:40 ` Eli Zaretskii 2006-02-09 20:26 ` Eli Zaretskii 1 sibling, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-09 14:57 UTC (permalink / raw) To: Mark Kettenis; +Cc: Eli Zaretskii, gdb-patches On Thu, Feb 09, 2006 at 03:44:07PM +0100, Mark Kettenis wrote: > > For example, here's a suggestion for what I think is more seamless > > integration of MinGW and other ``illegal aliens'', here for the > > `select' issue: > > > > int gdb_select (...) > > { > > if (select_hook) > > return (*select_hook) (...); > > else > > return select (...); > > } > > > > We make `select_hook' a global pointer to a function, and then MinGW > > can define its own emulation on win32-something.c and plug its address > > into `select_hook'. > > There is absolutely no reason for this additional complexity. GDB will > never be able to run on two different hosts at once. Just having two > different implementations and have configure.host choose the apprpriate > one will work just fine. FYI, I'm willing to (and now planning to) go ahead with Mark's plan, but let me point out a disadvantage to each of these two options... Right now, we only know of POSIX-ish systems and native Windows as interesting hopes. I'm sure many of us fervently hope that there are no others worth going through this for. But is it really wise to create a host-specific override mechanism which can't scale? If I do this Mark's way, overriding a function requires putting it into "posix-hdep.c" and another implementation in "mingw-hdep.c". There's no way to override only of the functions in posix-hdep.c. If I do it Eli's way, the function can live anywhere, and is overridden by setting "function_hook" (or "function_override"?) in _initialize_mingw_hdep. So a new host could override just select. Of course there's a flip side. If I do it Eli's way, the default version has to compile and link. Which happens to be the case for the two examples we have today, but also a pretty limiting assumption. Neither of them's perfect. Mark's is marginally less intrusive, and I'm halfway to an implementation already. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 14:57 ` Daniel Jacobowitz @ 2006-02-09 20:40 ` Eli Zaretskii 2006-02-09 21:06 ` Daniel Jacobowitz 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-09 20:40 UTC (permalink / raw) To: gdb-patches > Date: Thu, 9 Feb 2006 09:57:53 -0500 > From: Daniel Jacobowitz <drow@false.org> > Cc: Eli Zaretskii <eliz@gnu.org>, gdb-patches@sourceware.org > > Of course there's a flip side. If I do it Eli's way, the default > version has to compile and link. Which happens to be the case for > the two examples we have today, but also a pretty limiting assumption. If the default version doesn't compile on the platform that needs the hook, the solution is simple: define enough macros and stub functions to effectively make it the default version a nop on that platform. But in practice, the need for this rarely if ever arises. Macros and global symbols that are highly unportable tend to be used only if defined, as in: #if defined (TIOCGWINSZ) if (ioctl (tty, TIOCGWINSZ, &window_size) == 0) { _rl_screenwidth = (int) window_size.ws_col; _rl_screenheight = (int) window_size.ws_row; } #endif /* TIOCGWINSZ */ ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 20:40 ` Eli Zaretskii @ 2006-02-09 21:06 ` Daniel Jacobowitz 2006-02-09 22:13 ` Eli Zaretskii 0 siblings, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-09 21:06 UTC (permalink / raw) To: gdb-patches On Thu, Feb 09, 2006 at 10:38:53PM +0200, Eli Zaretskii wrote: > > Date: Thu, 9 Feb 2006 09:57:53 -0500 > > From: Daniel Jacobowitz <drow@false.org> > > Cc: Eli Zaretskii <eliz@gnu.org>, gdb-patches@sourceware.org > > > > Of course there's a flip side. If I do it Eli's way, the default > > version has to compile and link. Which happens to be the case for > > the two examples we have today, but also a pretty limiting assumption. > > If the default version doesn't compile on the platform that needs the > hook, the solution is simple: define enough macros and stub functions > to effectively make it the default version a nop on that platform. Except now I can't define either macros or prototypes for the stub functions, since part of the point of this exercise is to avoid the xm.h header! A more concrete example: win32-termcap.c currently provides tgetnum, because the current Windows setup does not use a curses library. Unfortunately there's no prototype in scope for this anywhere, so we get a warning. I'm going to have to autoconf for the prototype and put it somewhere generic, instead of tucking it away in config/i386/xm-mingw.h. I don't really love this idea but I don't see another way to fix -Werror builds. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 21:06 ` Daniel Jacobowitz @ 2006-02-09 22:13 ` Eli Zaretskii 0 siblings, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-09 22:13 UTC (permalink / raw) To: gdb-patches > Date: Thu, 9 Feb 2006 16:06:45 -0500 > From: Daniel Jacobowitz <drow@false.org> > > > If the default version doesn't compile on the platform that needs the > > hook, the solution is simple: define enough macros and stub functions > > to effectively make it the default version a nop on that platform. > > Except now I can't define either macros or prototypes for the stub > functions Yes, you can: in defs.h, if no other suitable header can be found in include/, like filenames.h for file-name related issues. Or we could add a sysdep.h header just to lump all kinds of system-dependent ugliness there. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 14:44 ` Mark Kettenis 2006-02-09 14:57 ` Daniel Jacobowitz @ 2006-02-09 20:26 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-09 20:26 UTC (permalink / raw) To: Mark Kettenis; +Cc: gdb-patches > Date: Thu, 9 Feb 2006 15:44:07 +0100 (CET) > From: "Mark Kettenis" <mark.kettenis@xs4all.nl> > Cc: mark.kettenis@xs4all.nl, gdb-patches@sourceware.org > > > int gdb_select (...) > > { > > if (select_hook) > > return (*select_hook) (...); > > else > > return select (...); > > } > > > > We make `select_hook' a global pointer to a function, and then MinGW > > can define its own emulation on win32-something.c and plug its address > > into `select_hook'. > > There is absolutely no reason for this additional complexity. GDB will > never be able to run on two different hosts at once. The reason isn't to allow GDB to run on two different hosts, it's to have a cleaner code and a simpler way of overriding a certain API. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-08 21:08 ` Mark Kettenis 2006-02-08 21:12 ` Bob Rossi 2006-02-08 21:54 ` Eli Zaretskii @ 2006-02-09 22:37 ` Daniel Jacobowitz 2006-02-10 7:53 ` Eli Zaretskii 2 siblings, 1 reply; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-09 22:37 UTC (permalink / raw) To: Mark Kettenis; +Cc: gdb-patches On Wed, Feb 08, 2006 at 10:07:59PM +0100, Mark Kettenis wrote: > My dislike for this stuff is probably there because where I've been > cleaning out much of the host-specific quirks, this MinGW support > seems to add back a lot special tweaks, and since Windows is so > different from Unix-like systems, there's absolutely no hope, things > can be unified. That, together with the reintroduction of xm.h, seems > like a giant leap backwards to me. I really don't like that xm.h is > back now, since it sets a precedent. People have used these files for > quick hacks in the past, and the new xm.h will make it harder to tell > people that's not acceptable. I think there is a better approach > though. How about having the implementation of safe_strerror() and > gdb_select() in mingw-hdep.c and move the (trivial) existing > implementations of these functions to a new posix-hdep.c? I really dislike _this_ precedent: Don't allow the existance of xm.h because people abused it in the past. That's what review is for, right? Anyway, here's a patch updated in every way I can think of to make it less upsetting. Is this really better? Select to follow in the proper thread. -- Daniel Jacobowitz CodeSourcery 2006-02-06 Daniel Jacobowitz <dan@codesourcery.com> * Makefile.in (mingw-hdep.o, posix-hdep.o): New dependencies. (ALLDEPFILES): Add mingw-hdep.c and posix-hdep.c. * configure.ac: Add gdb_host_obs to CONFIG_OBS. Set gdb_host_obs to posix-hdep.o by default. * configure: Regenerated. * configure.host: Document gdb_host_obs. Add an entry for i[34567]86-*-mingw32*. * mingw-hdep.c, posix-hdep.c: New files. * utils.c (safe_strerror): Remove, moved to posix-hdep.o. Index: src/gdb/Makefile.in =================================================================== --- src.orig/gdb/Makefile.in 2006-02-09 13:28:51.000000000 -0500 +++ src/gdb/Makefile.in 2006-02-09 16:50:17.000000000 -0500 @@ -1422,6 +1422,7 @@ ALLDEPFILES = \ m68kbsd-nat.c m68kbsd-tdep.c \ m68klinux-nat.c m68klinux-tdep.c \ m88k-tdep.c m88kbsd-nat.c \ + mingw-hdep.c \ mips-linux-nat.c mips-linux-tdep.c \ mips-irix-tdep.c \ mips-tdep.c mipsv4-nat.c \ @@ -1430,6 +1431,7 @@ ALLDEPFILES = \ nbsd-tdep.c obsd-tdep.c \ solib-osf.c \ somread.c solib-som.c $(HPREAD_SOURCE) \ + posix-hdep.c \ ppc-sysv-tdep.c ppc-linux-nat.c ppc-linux-tdep.c \ ppcnbsd-nat.c ppcnbsd-tdep.c \ ppcobsd-nat.c ppcobsd-tdep.c \ @@ -2280,6 +2282,7 @@ memattr.o: memattr.c $(defs_h) $(command $(target_h) $(value_h) $(language_h) $(gdb_string_h) mem-break.o: mem-break.c $(defs_h) $(symtab_h) $(breakpoint_h) $(inferior_h) \ $(target_h) +mingw-hdep.o: mingw-hdep.c $(defs_h) $(gdb_string_h) minsyms.o: minsyms.c $(defs_h) $(gdb_string_h) $(symtab_h) $(bfd_h) \ $(symfile_h) $(objfiles_h) $(demangle_h) $(value_h) $(cp_abi_h) mips64obsd-nat.o: mips64obsd-nat.c $(defs_h) $(inferior_h) $(regcache_h) \ @@ -2375,6 +2378,7 @@ p-exp.o: p-exp.c $(defs_h) $(gdb_string_ p-lang.o: p-lang.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \ $(expression_h) $(parser_defs_h) $(language_h) $(p_lang_h) \ $(valprint_h) $(value_h) +posix-hdep.o: posix-hdep.c $(defs_h) ppc-bdm.o: ppc-bdm.c $(defs_h) $(gdbcore_h) $(gdb_string_h) $(frame_h) \ $(inferior_h) $(bfd_h) $(symfile_h) $(target_h) $(gdbcmd_h) \ $(objfiles_h) $(gdb_stabs_h) $(serial_h) $(ocd_h) $(ppc_tdep_h) \ Index: src/gdb/configure.ac =================================================================== --- src.orig/gdb/configure.ac 2006-02-09 13:28:51.000000000 -0500 +++ src/gdb/configure.ac 2006-02-09 16:52:25.000000000 -0500 @@ -112,6 +112,10 @@ AC_DEFINE_DIR(DEBUGDIR, debugdir, AC_CONFIG_SUBDIRS(doc testsuite) +# Provide defaults for some variables set by the per-host and per-target +# configuration. +gdb_host_obs=posix-hdep.o + . $srcdir/configure.host . $srcdir/configure.tgt @@ -1225,6 +1229,9 @@ case ${host} in esac AC_SUBST(WIN32LIBS) +# Add any host-specific objects to GDB. +CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" + LIBGUI="../libgui/src/libgui.a" GUI_CFLAGS_X="-I${srcdir}/../libgui/src" AC_SUBST(LIBGUI) Index: src/gdb/configure.host =================================================================== --- src.orig/gdb/configure.host 2006-02-09 13:28:51.000000000 -0500 +++ src/gdb/configure.host 2006-02-09 16:52:12.000000000 -0500 @@ -7,6 +7,7 @@ # gdb_host_float_format host's float floatformat, or 0 # gdb_host_double_format host's double floatformat, or 0 # gdb_host_long_double_format host's long double floatformat, or 0 +# gdb_host_obs host-specific .o files to include # Map host cpu into the config cpu subdirectory name. # The default is $host_cpu. @@ -64,6 +65,9 @@ i[34567]86-*-netbsdelf* | i[34567]86-*-k gdb_host=nbsdelf ;; i[34567]86-*-netbsd*) gdb_host=nbsdaout ;; i[34567]86-*-go32*) gdb_host=go32 ;; +i[34567]86-*-mingw32*) gdb_host=mingw + gdb_host_obs=mingw-hdep.o + ;; i[34567]86-*-msdosdjgpp*) gdb_host=go32 ;; i[34567]86-*-linux*) gdb_host=linux ;; i[34567]86-*-lynxos*) gdb_host=i386lynx ;; Index: src/gdb/mingw-hdep.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ src/gdb/mingw-hdep.c 2006-02-09 16:49:11.000000000 -0500 @@ -0,0 +1,71 @@ +/* Host support routines for MinGW, for GDB, the GNU debugger. + + Copyright (C) 2006 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +#include "defs.h" + +#include "gdb_string.h" + +#include <windows.h> + +/* The strerror() function can return NULL for errno values that are + out of range. Provide a "safe" version that always returns a + printable string. + + The Windows runtime implementation of strerror never returns NULL, + but does return a useless string for anything above sys_nerr; + unfortunately this includes all socket-related error codes. + This replacement tries to find a system-provided error message. */ + +char * +safe_strerror (int errnum) +{ + static char *buffer; + int len; + + if (errnum >= 0 && errnum < sys_nerr) + return strerror (errnum); + + if (buffer) + { + LocalFree (buffer); + buffer = NULL; + } + + if (FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER + | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, errnum, + MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &buffer, 0, NULL) == 0) + { + static char buf[32]; + xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum); + return buf; + } + + /* Windows error messages end with a period and a CR-LF; strip that + out. */ + len = strlen (buffer); + if (len > 3 && strcmp (buffer + len - 3, ".\r\n") == 0) + buffer[len - 3] = '\0'; + + return buffer; +} Index: src/gdb/posix-hdep.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ src/gdb/posix-hdep.c 2006-02-09 16:47:26.000000000 -0500 @@ -0,0 +1,43 @@ +/* Host support routines for MinGW, for GDB, the GNU debugger. + + Copyright (C) 2006 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +#include "defs.h" + +/* The strerror() function can return NULL for errno values that are + out of range. Provide a "safe" version that always returns a + printable string. */ + +char * +safe_strerror (int errnum) +{ + char *msg; + + msg = strerror (errnum); + if (msg == NULL) + { + static char buf[32]; + xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum); + msg = buf; + } + return (msg); +} + Index: src/gdb/utils.c =================================================================== --- src.orig/gdb/utils.c 2006-02-07 11:11:34.000000000 -0500 +++ src/gdb/utils.c 2006-02-09 16:47:34.000000000 -0500 @@ -838,25 +838,6 @@ internal_warning (const char *file, int va_end (ap); } -/* The strerror() function can return NULL for errno values that are - out of range. Provide a "safe" version that always returns a - printable string. */ - -char * -safe_strerror (int errnum) -{ - char *msg; - - msg = strerror (errnum); - if (msg == NULL) - { - static char buf[32]; - xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum); - msg = buf; - } - return (msg); -} - /* Print the system error message for errno, and also mention STRING as the file name for which the error was encountered. Then return to command level. */ ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-09 22:37 ` Daniel Jacobowitz @ 2006-02-10 7:53 ` Eli Zaretskii 2006-02-10 16:18 ` Christopher Faylor 0 siblings, 1 reply; 98+ messages in thread From: Eli Zaretskii @ 2006-02-10 7:53 UTC (permalink / raw) To: gdb-patches > Date: Thu, 9 Feb 2006 17:37:19 -0500 > From: Daniel Jacobowitz <drow@false.org> > Cc: gdb-patches@sourceware.org > > Anyway, here's a patch updated in every way I can think of to make it > less upsetting. Is this really better? Select to follow in the proper > thread. I'm fine with this, if this is the best compromise we can reach. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-10 7:53 ` Eli Zaretskii @ 2006-02-10 16:18 ` Christopher Faylor 2006-02-10 16:49 ` Daniel Jacobowitz 2006-02-10 18:18 ` Eli Zaretskii 0 siblings, 2 replies; 98+ messages in thread From: Christopher Faylor @ 2006-02-10 16:18 UTC (permalink / raw) To: gdb-patches On Fri, Feb 10, 2006 at 09:53:10AM +0200, Eli Zaretskii wrote: >> Date: Thu, 9 Feb 2006 17:37:19 -0500 >> From: Daniel Jacobowitz >> >> Anyway, here's a patch updated in every way I can think of to make it >> less upsetting. Is this really better? Select to follow in the proper >> thread. > >I'm fine with this, if this is the best compromise we can reach. I'm wondering if a top-level "mingw" directory might simplify things here? Could most of the Windows accommodations be put in an "external" library and an external header file and just have gdb point to that? cgf ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-10 16:18 ` Christopher Faylor @ 2006-02-10 16:49 ` Daniel Jacobowitz 2006-02-10 18:18 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-10 16:49 UTC (permalink / raw) To: gdb-patches On Fri, Feb 10, 2006 at 11:18:00AM -0500, Christopher Faylor wrote: > On Fri, Feb 10, 2006 at 09:53:10AM +0200, Eli Zaretskii wrote: > >> Date: Thu, 9 Feb 2006 17:37:19 -0500 > >> From: Daniel Jacobowitz > >> > >> Anyway, here's a patch updated in every way I can think of to make it > >> less upsetting. Is this really better? Select to follow in the proper > >> thread. > > > >I'm fine with this, if this is the best compromise we can reach. > > I'm wondering if a top-level "mingw" directory might simplify things here? > Could most of the Windows accommodations be put in an "external" library > and an external header file and just have gdb point to that? I spoke with Chris about this a bit, offline; my general feeling is that (for reasons previously discussed) this wouldn't help. For instance we'd have to find some other way than knowing how handles had been created to figure out how to properly select on them. -- Daniel Jacobowitz CodeSourcery ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-10 16:18 ` Christopher Faylor 2006-02-10 16:49 ` Daniel Jacobowitz @ 2006-02-10 18:18 ` Eli Zaretskii 1 sibling, 0 replies; 98+ messages in thread From: Eli Zaretskii @ 2006-02-10 18:18 UTC (permalink / raw) To: gdb-patches > Date: Fri, 10 Feb 2006 11:18:00 -0500 > From: Christopher Faylor <cgf-mailinglist-please@cygwin.com> > > I'm wondering if a top-level "mingw" directory might simplify things here? I think that's too complex for the simple problems we have. ^ permalink raw reply [flat|nested] 98+ messages in thread
* Re: RFA: Support Windows extended error numbers in safe_strerror 2006-02-03 21:55 RFA: Support Windows extended error numbers in safe_strerror Daniel Jacobowitz ` (2 preceding siblings ...) 2006-02-06 17:35 ` Daniel Jacobowitz @ 2006-02-10 21:56 ` Daniel Jacobowitz 3 siblings, 0 replies; 98+ messages in thread From: Daniel Jacobowitz @ 2006-02-10 21:56 UTC (permalink / raw) To: gdb-patches On Fri, Feb 03, 2006 at 04:54:55PM -0500, Daniel Jacobowitz wrote: > This is an improved version of a patch Mark Mitchell submitted last > year. If you give strerror() anything above 42 (sys_nerr) on Windows, > it gives you back "Unknown error" - particularly unfortunate since > WSAECONNREFUSED is way above there, so connecting to a closed socket > will give you a generic error message. This patch lets us try an > OS-specific interface to fetch an error string. > > [Actually you need my next patch too to get the connection refused message; > right now you'll get a timeout.] Here's what I have checked in, tested on x86_64-linux and i586-mingw32. There's a typo fix since the last posting. -- Daniel Jacobowitz CodeSourcery 2006-02-10 Daniel Jacobowitz <dan@codesourcery.com> * Makefile.in (mingw-hdep.o, posix-hdep.o): New dependencies. (ALLDEPFILES): Add mingw-hdep.c and posix-hdep.c. * configure.ac: Add gdb_host_obs to CONFIG_OBS. Set gdb_host_obs to posix-hdep.o by default. * configure: Regenerated. * configure.host: Document gdb_host_obs. Add an entry for i[34567]86-*-mingw32*. * mingw-hdep.c, posix-hdep.c: New files. * utils.c (safe_strerror): Remove, moved to posix-hdep.o. Index: src/gdb/Makefile.in =================================================================== --- src.orig/gdb/Makefile.in 2006-02-09 17:25:51.000000000 -0500 +++ src/gdb/Makefile.in 2006-02-10 12:41:37.000000000 -0500 @@ -1422,6 +1422,7 @@ ALLDEPFILES = \ m68kbsd-nat.c m68kbsd-tdep.c \ m68klinux-nat.c m68klinux-tdep.c \ m88k-tdep.c m88kbsd-nat.c \ + mingw-hdep.c \ mips-linux-nat.c mips-linux-tdep.c \ mips-irix-tdep.c \ mips-tdep.c mipsv4-nat.c \ @@ -1430,6 +1431,7 @@ ALLDEPFILES = \ nbsd-tdep.c obsd-tdep.c \ solib-osf.c \ somread.c solib-som.c $(HPREAD_SOURCE) \ + posix-hdep.c \ ppc-sysv-tdep.c ppc-linux-nat.c ppc-linux-tdep.c \ ppcnbsd-nat.c ppcnbsd-tdep.c \ ppcobsd-nat.c ppcobsd-tdep.c \ @@ -2280,6 +2282,7 @@ memattr.o: memattr.c $(defs_h) $(command $(target_h) $(value_h) $(language_h) $(gdb_string_h) mem-break.o: mem-break.c $(defs_h) $(symtab_h) $(breakpoint_h) $(inferior_h) \ $(target_h) +mingw-hdep.o: mingw-hdep.c $(defs_h) $(gdb_string_h) minsyms.o: minsyms.c $(defs_h) $(gdb_string_h) $(symtab_h) $(bfd_h) \ $(symfile_h) $(objfiles_h) $(demangle_h) $(value_h) $(cp_abi_h) mips64obsd-nat.o: mips64obsd-nat.c $(defs_h) $(inferior_h) $(regcache_h) \ @@ -2375,6 +2378,7 @@ p-exp.o: p-exp.c $(defs_h) $(gdb_string_ p-lang.o: p-lang.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \ $(expression_h) $(parser_defs_h) $(language_h) $(p_lang_h) \ $(valprint_h) $(value_h) +posix-hdep.o: posix-hdep.c $(defs_h) $(gdb_string_h) ppc-bdm.o: ppc-bdm.c $(defs_h) $(gdbcore_h) $(gdb_string_h) $(frame_h) \ $(inferior_h) $(bfd_h) $(symfile_h) $(target_h) $(gdbcmd_h) \ $(objfiles_h) $(gdb_stabs_h) $(serial_h) $(ocd_h) $(ppc_tdep_h) \ Index: src/gdb/configure =================================================================== --- src.orig/gdb/configure 2006-02-09 17:25:51.000000000 -0500 +++ src/gdb/configure 2006-02-10 12:41:28.000000000 -0500 @@ -991,7 +991,7 @@ esac else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi - cd $ac_popdir + cd "$ac_popdir" done fi @@ -1933,8 +1933,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -1992,8 +1991,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2109,8 +2107,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2164,8 +2161,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2210,8 +2206,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2255,8 +2250,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2619,8 +2613,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2674,8 +2667,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2781,8 +2773,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3081,8 +3072,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3289,8 +3279,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3350,8 +3339,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3430,8 +3418,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3496,8 +3483,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3562,8 +3548,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3627,8 +3612,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3709,8 +3693,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3851,8 +3834,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -3990,8 +3972,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4175,8 +4156,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4427,8 +4407,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4622,8 +4601,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4726,8 +4704,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4798,8 +4775,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -4896,8 +4872,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5033,8 +5008,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5098,8 +5072,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5154,8 +5127,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5295,8 +5267,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5429,8 +5400,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5707,8 +5677,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5942,6 +5911,10 @@ _ACEOF subdirs="$subdirs doc testsuite" +# Provide defaults for some variables set by the per-host and per-target +# configuration. +gdb_host_obs=posix-hdep.o + . $srcdir/configure.host . $srcdir/configure.tgt @@ -6127,8 +6100,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6277,8 +6249,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6434,8 +6405,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6584,8 +6554,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6796,8 +6765,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6860,8 +6828,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6931,8 +6898,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7578,8 +7544,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7683,8 +7648,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7750,8 +7714,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7827,8 +7790,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7882,8 +7844,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7955,8 +7916,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8010,8 +7970,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8091,8 +8050,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8146,8 +8104,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8238,8 +8195,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8293,8 +8249,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8377,8 +8332,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8450,8 +8404,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8505,8 +8458,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8577,8 +8529,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8632,8 +8583,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8758,8 +8708,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8925,8 +8874,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9075,8 +9023,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9142,8 +9089,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9293,8 +9239,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9445,8 +9390,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9595,8 +9539,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9745,8 +9688,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9895,8 +9837,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10047,8 +9988,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10197,8 +10137,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10347,8 +10286,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10497,8 +10435,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10647,8 +10584,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10797,8 +10733,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10944,8 +10879,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11011,8 +10945,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11162,8 +11095,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11313,8 +11245,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11463,8 +11394,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11613,8 +11543,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11763,8 +11692,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11910,8 +11838,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11978,8 +11905,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12130,8 +12056,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12280,8 +12205,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12447,8 +12371,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12597,8 +12520,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12744,8 +12666,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12815,8 +12736,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12968,8 +12888,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13038,8 +12957,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13108,8 +13026,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13180,8 +13097,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13250,8 +13166,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13322,8 +13237,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13392,8 +13306,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13462,8 +13375,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13538,8 +13450,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13582,8 +13493,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13648,8 +13558,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13692,8 +13601,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13771,8 +13679,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13836,8 +13743,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13902,8 +13808,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14015,8 +13920,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14076,8 +13980,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14154,8 +14057,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14236,8 +14138,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14378,8 +14279,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14517,8 +14417,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14702,8 +14601,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14942,8 +14840,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15011,8 +14908,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15197,8 +15093,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15240,18 +15135,24 @@ else ac_cv_func_fork_works=cross else cat >conftest.$ac_ext <<_ACEOF -/* By Ruediger Kuhlmann. */ - #include <sys/types.h> - #if HAVE_UNISTD_H - # include <unistd.h> - #endif - /* Some systems only have a dummy stub for fork() */ - int main () - { - if (fork() < 0) - exit (1); - exit (0); - } +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* By Ruediger Kuhlmann. */ + if (fork() < 0) + exit (1); + exit (0); + + ; + return 0; +} _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 @@ -15531,8 +15432,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15634,8 +15534,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15736,8 +15635,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15838,8 +15736,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15940,8 +15837,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16043,8 +15939,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16147,8 +16042,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16249,8 +16143,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16351,8 +16244,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16453,8 +16345,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16555,8 +16446,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16636,8 +16526,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16709,8 +16598,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16776,8 +16664,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16825,8 +16712,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16977,8 +16863,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17042,8 +16927,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17111,8 +16995,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17190,8 +17073,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17237,8 +17119,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17304,8 +17185,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17367,8 +17247,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17433,8 +17312,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17478,8 +17356,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17544,8 +17421,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17589,8 +17465,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17655,8 +17530,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17718,8 +17592,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17782,8 +17655,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17846,8 +17718,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17954,8 +17825,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18019,8 +17889,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18084,8 +17953,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18149,8 +18017,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18214,8 +18081,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18279,8 +18145,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18344,8 +18209,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18409,8 +18273,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18474,8 +18337,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18539,8 +18401,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18604,8 +18465,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18669,8 +18529,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18734,8 +18593,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18799,8 +18657,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18931,8 +18788,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18996,8 +18852,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19060,8 +18915,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19127,8 +18981,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19191,8 +19044,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19261,8 +19113,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19385,8 +19236,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19579,8 +19429,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19693,8 +19542,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19759,8 +19607,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19824,8 +19671,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19894,8 +19740,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -19959,8 +19804,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20024,8 +19868,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20192,8 +20035,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20282,6 +20124,9 @@ _ACEOF esac +# Add any host-specific objects to GDB. +CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" + LIBGUI="../libgui/src/libgui.a" GUI_CFLAGS_X="-I${srcdir}/../libgui/src" @@ -20642,8 +20487,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -20894,8 +20738,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -21355,6 +21198,7 @@ fi echo "$as_me:$LINENO: checking for X" >&5 echo $ECHO_N "checking for X... $ECHO_C" >&6 +ac_path_x_has_been_run=yes # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -21447,7 +21291,7 @@ ac_x_header_dirs=' /usr/openwin/share/include' if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Intrinsic.h. + # Guess where to find include files, by looking for a specified header file. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21455,7 +21299,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Intrinsic.h> +#include <X11/Xlib.h> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -21482,7 +21326,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Intrinsic.h"; then + if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi @@ -21496,18 +21340,18 @@ if test "$ac_x_libraries" = no; then # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS - LIBS="-lXt $LIBS" + LIBS="-lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Intrinsic.h> +#include <X11/Xlib.h> int main () { -XtMalloc (0) +XrmInitialize () ; return 0; } @@ -21521,8 +21365,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -21546,7 +21389,7 @@ for ac_dir in `echo "$ac_x_includes $ac_ do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl; do - if test -r $ac_dir/libXt.$ac_extension; then + if test -r $ac_dir/libX11.$ac_extension; then ac_x_libraries=$ac_dir break 2 fi @@ -21582,8 +21425,12 @@ else # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes \ ac_x_includes=$x_includes ac_x_libraries=$x_libraries" - echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 -echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 + # It might be that x_includes is empty (headers are found in the + # standard search path. Then output the corresponding message + ac_out_x_includes=$x_includes + test "x$x_includes" = x && ac_out_x_includes="in standard search path" + echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5 +echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6 fi @@ -21907,8 +21754,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -21958,8 +21804,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -22034,8 +21879,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -23033,11 +22877,6 @@ esac *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ @@ -23076,6 +22915,12 @@ echo "$as_me: error: cannot find input f fi;; esac done` || { (exit 1); exit 1; } + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub @@ -23799,7 +23644,7 @@ echo "$as_me: error: $ac_sub_configure f { (exit 1); exit 1; }; } fi - cd $ac_popdir + cd "$ac_popdir" done fi Index: src/gdb/configure.ac =================================================================== --- src.orig/gdb/configure.ac 2006-02-09 17:25:51.000000000 -0500 +++ src/gdb/configure.ac 2006-02-10 12:41:28.000000000 -0500 @@ -112,6 +112,10 @@ AC_DEFINE_DIR(DEBUGDIR, debugdir, AC_CONFIG_SUBDIRS(doc testsuite) +# Provide defaults for some variables set by the per-host and per-target +# configuration. +gdb_host_obs=posix-hdep.o + . $srcdir/configure.host . $srcdir/configure.tgt @@ -1225,6 +1229,9 @@ case ${host} in esac AC_SUBST(WIN32LIBS) +# Add any host-specific objects to GDB. +CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" + LIBGUI="../libgui/src/libgui.a" GUI_CFLAGS_X="-I${srcdir}/../libgui/src" AC_SUBST(LIBGUI) Index: src/gdb/configure.host =================================================================== --- src.orig/gdb/configure.host 2006-02-09 17:25:51.000000000 -0500 +++ src/gdb/configure.host 2006-02-09 17:26:52.000000000 -0500 @@ -7,6 +7,7 @@ # gdb_host_float_format host's float floatformat, or 0 # gdb_host_double_format host's double floatformat, or 0 # gdb_host_long_double_format host's long double floatformat, or 0 +# gdb_host_obs host-specific .o files to include # Map host cpu into the config cpu subdirectory name. # The default is $host_cpu. @@ -64,6 +65,9 @@ i[34567]86-*-netbsdelf* | i[34567]86-*-k gdb_host=nbsdelf ;; i[34567]86-*-netbsd*) gdb_host=nbsdaout ;; i[34567]86-*-go32*) gdb_host=go32 ;; +i[34567]86-*-mingw32*) gdb_host=mingw + gdb_host_obs=mingw-hdep.o + ;; i[34567]86-*-msdosdjgpp*) gdb_host=go32 ;; i[34567]86-*-linux*) gdb_host=linux ;; i[34567]86-*-lynxos*) gdb_host=i386lynx ;; Index: src/gdb/mingw-hdep.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ src/gdb/mingw-hdep.c 2006-02-10 12:41:28.000000000 -0500 @@ -0,0 +1,71 @@ +/* Host support routines for MinGW, for GDB, the GNU debugger. + + Copyright (C) 2006 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +#include "defs.h" + +#include "gdb_string.h" + +#include <windows.h> + +/* The strerror() function can return NULL for errno values that are + out of range. Provide a "safe" version that always returns a + printable string. + + The Windows runtime implementation of strerror never returns NULL, + but does return a useless string for anything above sys_nerr; + unfortunately this includes all socket-related error codes. + This replacement tries to find a system-provided error message. */ + +char * +safe_strerror (int errnum) +{ + static char *buffer; + int len; + + if (errnum >= 0 && errnum < sys_nerr) + return strerror (errnum); + + if (buffer) + { + LocalFree (buffer); + buffer = NULL; + } + + if (FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER + | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, errnum, + MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &buffer, 0, NULL) == 0) + { + static char buf[32]; + xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum); + return buf; + } + + /* Windows error messages end with a period and a CR-LF; strip that + out. */ + len = strlen (buffer); + if (len > 3 && strcmp (buffer + len - 3, ".\r\n") == 0) + buffer[len - 3] = '\0'; + + return buffer; +} Index: src/gdb/posix-hdep.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ src/gdb/posix-hdep.c 2006-02-10 12:41:57.000000000 -0500 @@ -0,0 +1,45 @@ +/* Host support routines for MinGW, for GDB, the GNU debugger. + + Copyright (C) 2006 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +#include "defs.h" + +#include "gdb_string.h" + +/* The strerror() function can return NULL for errno values that are + out of range. Provide a "safe" version that always returns a + printable string. */ + +char * +safe_strerror (int errnum) +{ + char *msg; + + msg = strerror (errnum); + if (msg == NULL) + { + static char buf[32]; + xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum); + msg = buf; + } + return (msg); +} + Index: src/gdb/utils.c =================================================================== --- src.orig/gdb/utils.c 2006-02-09 17:25:51.000000000 -0500 +++ src/gdb/utils.c 2006-02-09 17:26:52.000000000 -0500 @@ -838,25 +838,6 @@ internal_warning (const char *file, int va_end (ap); } -/* The strerror() function can return NULL for errno values that are - out of range. Provide a "safe" version that always returns a - printable string. */ - -char * -safe_strerror (int errnum) -{ - char *msg; - - msg = strerror (errnum); - if (msg == NULL) - { - static char buf[32]; - xsnprintf (buf, sizeof buf, "(undocumented errno %d)", errnum); - msg = buf; - } - return (msg); -} - /* Print the system error message for errno, and also mention STRING as the file name for which the error was encountered. Then return to command level. */ ^ permalink raw reply [flat|nested] 98+ messages in thread
end of thread, other threads:[~2006-03-02 0:53 UTC | newest] Thread overview: 98+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2006-02-03 21:55 RFA: Support Windows extended error numbers in safe_strerror Daniel Jacobowitz 2006-02-03 23:25 ` Mark Kettenis 2006-02-03 23:39 ` Christopher Faylor 2006-02-04 3:27 ` Daniel Jacobowitz 2006-02-04 6:29 ` Jim Blandy 2006-02-04 10:33 ` Eli Zaretskii 2006-02-04 10:59 ` Eli Zaretskii 2006-02-04 14:35 ` Mark Kettenis 2006-02-04 14:52 ` Daniel Jacobowitz 2006-02-04 15:14 ` Eli Zaretskii 2006-02-05 0:15 ` Christopher Faylor 2006-02-05 4:46 ` Eli Zaretskii 2006-02-05 19:34 ` Christopher Faylor 2006-02-05 19:49 ` Daniel Jacobowitz 2006-02-05 20:19 ` Eli Zaretskii 2006-02-05 20:22 ` Daniel Jacobowitz 2006-02-05 21:50 ` Christopher Faylor 2006-02-05 21:57 ` Daniel Jacobowitz 2006-02-05 22:33 ` Christopher Faylor 2006-02-05 22:41 ` Daniel Jacobowitz 2006-02-06 6:35 ` Christopher Faylor 2006-02-06 17:26 ` Daniel Jacobowitz 2006-02-05 22:59 ` Eli Zaretskii 2006-02-05 22:47 ` Eli Zaretskii 2006-02-06 2:41 ` Daniel Jacobowitz 2006-02-06 4:20 ` Eli Zaretskii 2006-02-05 22:57 ` Eli Zaretskii 2006-02-05 22:44 ` Christopher Faylor 2006-02-05 23:07 ` Eli Zaretskii 2006-02-06 5:14 ` Christopher Faylor 2006-02-06 7:20 ` Eli Zaretskii 2006-02-06 8:47 ` Corinna Vinschen 2006-02-06 12:07 ` Bob Rossi 2006-02-06 14:23 ` Daniel Jacobowitz 2006-02-06 18:37 ` Eli Zaretskii 2006-02-04 10:03 ` Eli Zaretskii 2006-02-05 0:27 ` Christopher Faylor 2006-02-05 2:01 ` Daniel Jacobowitz 2006-02-05 4:49 ` Eli Zaretskii 2006-02-05 7:39 ` Jim Blandy 2006-02-05 20:01 ` Eli Zaretskii 2006-02-05 20:20 ` Daniel Jacobowitz 2006-02-05 22:45 ` Eli Zaretskii 2006-02-06 2:38 ` Daniel Jacobowitz 2006-02-05 4:48 ` Eli Zaretskii 2006-02-04 1:06 ` Jim Blandy 2006-02-04 3:00 ` Daniel Jacobowitz 2006-02-04 6:22 ` Ian Lance Taylor 2006-02-04 10:29 ` Eli Zaretskii 2006-02-04 13:53 ` Mark Kettenis 2006-02-04 15:17 ` Eli Zaretskii 2006-02-04 10:24 ` Eli Zaretskii 2006-02-04 15:33 ` Mark Kettenis 2006-02-04 15:35 ` Eli Zaretskii 2006-02-04 10:20 ` Eli Zaretskii 2006-02-04 13:14 ` Mark Kettenis 2006-02-05 7:41 ` Jim Blandy 2006-03-02 0:53 ` Michael Snyder 2006-02-04 11:58 ` Eli Zaretskii 2006-02-04 14:53 ` Daniel Jacobowitz 2006-02-04 15:09 ` Eli Zaretskii 2006-02-04 15:57 ` David Ayers 2006-02-06 17:35 ` Daniel Jacobowitz 2006-02-06 17:54 ` Christopher Faylor 2006-02-06 18:23 ` Jim Blandy 2006-02-06 19:08 ` Eli Zaretskii 2006-02-06 19:58 ` Daniel Jacobowitz 2006-02-06 20:59 ` Daniel Jacobowitz 2006-02-06 22:55 ` Mark Kettenis 2006-02-06 22:58 ` Daniel Jacobowitz 2006-02-08 0:08 ` Daniel Jacobowitz 2006-02-08 21:08 ` Mark Kettenis 2006-02-08 21:12 ` Bob Rossi 2006-02-08 23:17 ` Mark Kettenis 2006-02-08 23:23 ` Daniel Jacobowitz 2006-02-09 0:12 ` Joel Brobecker 2006-02-09 1:54 ` Bob Rossi 2006-02-09 7:47 ` Eli Zaretskii 2006-02-09 9:18 ` Jim Blandy 2006-02-08 21:54 ` Eli Zaretskii 2006-02-08 23:10 ` Mark Kettenis 2006-02-08 23:22 ` Daniel Jacobowitz 2006-02-09 14:40 ` Mark Kettenis 2006-02-09 15:14 ` Daniel Jacobowitz 2006-02-09 20:24 ` Eli Zaretskii 2006-02-09 8:00 ` Eli Zaretskii 2006-02-09 14:44 ` Mark Kettenis 2006-02-09 14:57 ` Daniel Jacobowitz 2006-02-09 20:40 ` Eli Zaretskii 2006-02-09 21:06 ` Daniel Jacobowitz 2006-02-09 22:13 ` Eli Zaretskii 2006-02-09 20:26 ` Eli Zaretskii 2006-02-09 22:37 ` Daniel Jacobowitz 2006-02-10 7:53 ` Eli Zaretskii 2006-02-10 16:18 ` Christopher Faylor 2006-02-10 16:49 ` Daniel Jacobowitz 2006-02-10 18:18 ` Eli Zaretskii 2006-02-10 21:56 ` Daniel Jacobowitz
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox