Mail Archives: cygwin-developers/2000/06/09/12:41:53
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_01BFD231.5A8F7126
Content-Type: text/plain;
charset="windows-1252"
> Is cygwin really "broken in recent releases"? Does anyone know why?
EXECUTIVE SUMMARY:
Somewhat.
MORE REALISTIC SUMMARY:
From what I have determined exception handling with -mno-cygwin is
definately broken. But that is obvious if you look at the excpt.h. Paul
Baxter actually sent a good email about that to the main list, cf.
http://sourceware.cygnus.com/ml/cygwin/2000-06/msg00346.html.
The other thing that is "broken" is the handling of lib[mc] with g++ which I
have previously mentioned, created a patch to correct, and emailed the new
executable to those that needed it.
As a side note, I finally tracked down what was needed to release a new gcc
w/o the i686-pc-cygwin directory, but will not be able to do so ... you got
it ... until I get home this evening. BTW, Chris you should add
"gcc_tooldir=/usr" and "gcc_tooldir=$inst/usr" to the appropriate make
commands in the script from which you mailed excerpts yesterday.
There may also be a problem of -mno-cygwin picking up the cygwin header
files in some cases. I am looking into this.
I can say that at least the following trivial program works both when
compiled as C with gcc and as C++ with my modified g++.
<--- hello.c --->
#include <windows.h>
int APIENTRY WinMain(HINSTANCE a1,HINSTANCE a2,LPSTR a3,int a4)
{
MessageBox(NULL, "Hello, world!", NULL, MB_OK);
return 0;
}
<--- End hello.c --->
However adding the simplest exception handling construct as in the following
code creates a link error.
<--- eh_hello.cpp --->
#include <windows.h>
class foo
{
};
int APIENTRY WinMain(HINSTANCE a1,HINSTANCE a2,LPSTR a3,int a4)
{
try {
throw foo();
}
catch (foo& f)
{
MessageBox(NULL, "Hello, world!", NULL, MB_OK);
}
return 0;
}
<--- End eh_hello.cpp --->
Link error:
bash-2.04$ g++ -mno-cygwin -fno-rtti hello.cpp -o hello
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/libgcc.a(_eh.o): In function
`_eh_rtime_match':
/home/src/gcc-2.95.2/gcc/./libgcc2.c(.text+0x389): undefined reference to
`_impure_ptr'
collect2: ld returned 1 exit status
If your source code will compile with -fno-exceptions, it should work in
most cases.
That is a brief synopsis of what I know.
------_=_NextPart_000_01BFD231.5A8F7126
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64
eJ8+IgIQAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy
b3NvZnQgTWFpbC5Ob3RlADEIAQSAAQA3AAAAUkU6IFtjZXRAY2FybHRob21wc29uLm5ldDogUmU6
IEV4dHJlbWUgbmV3YmllIGhlcmUuLi5dAOESAQmAAQAhAAAAMDI0Mjc3QTZEQ0JBRDA0QkI3NURF
MkFENTBFRDMwNEYAWgcBIIADAA4AAADQBwYACQALACgAAAAFAB4BAQWAAwAOAAAA0AcGAAkACwAn
ACIABQA/AQENgAQAAgAAAAIAAgABA5AGAIALAAArAAAACwACAAEAAAADAC4AAAAAAEAAOQAwfUdL
MdK/AR4AcAABAAAAMwAAAFtjZXRAY2FybHRob21wc29uLm5ldDogUmU6IEV4dHJlbWUgbmV3Ymll
IGhlcmUuLi5dAAACAXEAAQAAABsAAAABv9Ij6BhDFFg1PGsR1Jw/AGAIw/BnAAGMWyAAAgEJEAEA
AACRBgAAjQYAAAYLAABMWkZ1TKcdZgMACgByY3BnMTI14jIDQ3RleAVBAQMB9/8KgAKkA+QHEwKA
D/MAUARWPwhVB7IRJQ5RAwECAGNo4QrAc2V0MgYABsMRJfYzBEYTtzASLBEzCO8J97Y7GB8OMDUR
IgxgYwBQMwsJAWQzNhZQC6YgPsQgSQQgY3lnA/ADoIMYIAdAbHkgImIDYOprCfAgHYNjCfAFQBgg
BmwdwBQQcyI/ICAsRG8HkQBweQIgZSAIa25vB+B3aHk/BwqiCoQKgEVYRUNVEFRJVkUGAFVNTdBB
Ulk6IVpTA3AH0IkT4HQuIVpNT1IikKElYEFMSVMiYEMir70hckYDYSEBJFAdACAT4M52IKABAA6w
cm0LgAmAbiAOwB7wBTBpAiAoIW4UZGwLgGchAGl0aOggLW0g0C0dRQQAKHG+ZguAJFAfUB4AHjQu
H+A8QnUFQCqAJ+ErcW9iWnYpkHUEIAaQICBwdf4gF7AeUCBALQIgoCkxBTBELmgssVBhdQMgQs5h
DtASgQDQdHUd0xQQ8R8RYSBnLqApEQDAAxHnAaAIYC0FdG8vAzIRA6BRKhBzdCwdMGYssGjBAkBw
Oi8vcwhhHvDSdwrAZS4dQW4t8DWAoQNwL21sLx1ELwHQkTbwLTA2NjBzZzbwaDM0Ni+gdDZAJHtU
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
RkM0MDAAAAAAAgH7PwEAAAB0AAAAAAAAANynQMjAQhAatLkIACsv4YIBAAAABgAAAC9PPUJVVExF
UiBNQU5VRkFDVFVSSU5HIENPTVBBTlkvT1U9QlVJTERJTkdTL0NOPVJFQ0lQSUVOVFMvQ049VE9X
RVIvQ049UkRQQVJLRVJEMDZGQzQwMAAeAPo/AQAAAAwAAABQYXJrZXIsIFJvbgAeADlAAQAAABEA
AABSRFBBUktFUkQwNkZDNDAwAAAAAEAABzBAgIEZKtK/AUAACDAmcY9aMdK/AR4APQABAAAABQAA
AFJFOiAAAAAAHgAdDgEAAAAzAAAAW2NldEBjYXJsdGhvbXBzb24ubmV0OiBSZTogRXh0cmVtZSBu
ZXdiaWUgaGVyZS4uLl0AAAsAKQAAAAAACwAjAAAAAAADAAYQTXTakAMABxC5BgAAAwAQEAEAAAAD
ABEQAQAAAB4ACBABAAAAZQAAAElTQ1lHV0lOUkVBTExZIkJST0tFTklOUkVDRU5UUkVMRUFTRVMi
P0RPRVNBTllPTkVLTk9XV0hZP0VYRUNVVElWRVNVTU1BUlk6U09NRVdIQVRNT1JFUkVBTElTVElD
U1VNTUEAAAAAUhg=
------_=_NextPart_000_01BFD231.5A8F7126--
- Raw text -