Re: RFA: Support Windows extended error numbers in safe_strerror

Christopher Faylor
2006-02-05T19:34:43Z

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