delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/04/23/22:33:49

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
X-Authentication-Warning: modi.xraylith.wisc.edu: khan owned process doing -bs
Date: Fri, 23 Apr 1999 21:33:11 -0500 (CDT)
From: Mumit Khan <khan AT xraylith DOT wisc DOT edu>
To: cygwin AT sourceware DOT cygnus DOT com
Subject: gcc -U_WIN32 pitfalls!
Message-ID: <Pine.SUN.3.93.990423213143.2983A-200000@modi.xraylith.wisc.edu>
MIME-Version: 1.0

--1915750185-1610392959-924921191=:2983
Content-Type: TEXT/PLAIN; charset=US-ASCII

Just for kicks, I tried to build a small analysis program with -U_WIN32;
this tool is essentially a filter and doesn't use any win32 specific 
features, so it should be pretty safe, right?

Looks like certain typedefs are *WRONG* when you undefine _WIN32 and it
causes amazingly subtle bugs! Any code using stat for example will be
subtly but surely broken.

I'm attaching a small trivial program that should illustrate this. Here's
the header comments from the file. 

This is with stock B20.1. Compiler version is no relevant here.

//
// A simple program to show the pitfall of using -U_WIN32 in your code
// under Cygwin b20.1!
//
// To build:
//  $ c++ -U_WIN32 -o cyg-stat-bug cyg-stat.cc
//  $ c++ -o cyg-stat-ok cyg-stat.cc
//
// Now run it giving a filename on command line:
//
//  $ ./cyg-stat-bug ./cyg-stat.cc
//  $ ./cyg-stat-ok ./cyg-stat.cc
//
// To find the cause of the problem (after you notice it in the output
// of course!), you need to look at the preprocessed files.
//
//  $ c++ -save-temps -U_WIN32 -o cyg-stat-bug cyg-stat.cc
//  $ mv cyg-stat.ii cyg-stat-bug.ii
//  $ c++ -save-temps -o cyg-stat-ok cyg-stat.cc
//  $ mv cyg-stat.ii cyg-stat-ok.ii
//  $ diff -u3p cyg-stat-bug.ii cyg-stat-ok.ii
//
//  Look for ino_t.
// 

Regards,
Mumit


--1915750185-1610392959-924921191=:2983
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="cyg-stat.cc"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine DOT SUN DOT 3 DOT 93 DOT 990423213311 DOT 2983B AT modi DOT xraylith DOT wisc DOT edu>
Content-Description: Test program to show pitfall.

Ly8NCi8vIEEgc2ltcGxlIHByb2dyYW0gdG8gc2hvdyB0aGUgcGl0ZmFsbCBv
ZiB1c2luZyAtVV9XSU4zMiBpbiB5b3VyIGNvZGUNCi8vIHVuZGVyIEN5Z3dp
biBiMjAuMSENCi8vDQovLyBUbyBidWlsZDoNCi8vICAkIGMrKyAtVV9XSU4z
MiAtbyBjeWctc3RhdC1idWcgY3lnLXN0YXQuY2MNCi8vICAkIGMrKyAtbyBj
eWctc3RhdC1vayBjeWctc3RhdC5jYw0KLy8NCi8vIE5vdyBydW4gaXQgZ2l2
aW5nIGEgZmlsZW5hbWUgb24gY29tbWFuZCBsaW5lOg0KLy8NCi8vICAkIC4v
Y3lnLXN0YXQtYnVnIC4vY3lnLXN0YXQuY2MNCi8vICAkIC4vY3lnLXN0YXQt
b2sgLi9jeWctc3RhdC5jYw0KLy8NCi8vIFRvIGZpbmQgdGhlIGNhdXNlIG9m
IHRoZSBwcm9ibGVtIChhZnRlciB5b3Ugbm90aWNlIGl0IGluIHRoZSBvdXRw
dXQNCi8vIG9mIGNvdXJzZSEpLCB5b3UgbmVlZCB0byBsb29rIGF0IHRoZSBw
cmVwcm9jZXNzZWQgZmlsZXMuDQovLw0KLy8gICQgYysrIC1zYXZlLXRlbXBz
IC1VX1dJTjMyIC1vIGN5Zy1zdGF0LWJ1ZyBjeWctc3RhdC5jYw0KLy8gICQg
bXYgY3lnLXN0YXQuaWkgY3lnLXN0YXQtYnVnLmlpDQovLyAgJCBjKysgLXNh
dmUtdGVtcHMgLW8gY3lnLXN0YXQtb2sgY3lnLXN0YXQuY2MNCi8vICAkIG12
IGN5Zy1zdGF0LmlpIGN5Zy1zdGF0LW9rLmlpDQovLyAgJCBkaWZmIC11M3Ag
Y3lnLXN0YXQtYnVnLmlpIGN5Zy1zdGF0LW9rLmlpDQovLw0KLy8gIExvb2sg
Zm9yIGlub190Lg0KLy8gDQoNCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNp
bmNsdWRlIDxzeXMvc3RhdC5oPg0KI2luY2x1ZGUgPHVuaXN0ZC5oPg0KI2lu
Y2x1ZGUgPGNzdGRpbz4NCiNpbmNsdWRlIDxpb3N0cmVhbT4NCg0KaW50DQpt
YWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQ0Kew0KICAgZm9yIChpbnQg
aSA9IDE7IGkgPCBhcmdjOyBpKyspDQogICAgIHsNCiAgICAgICBzdHJ1Y3Qg
c3RhdCBidWY7DQogICAgICAgY29uc3QgY2hhciAqcGF0aCA9IGFyZ3ZbaV07
DQogICAgICAgaW50IHJlc3VsdCA9IHN0YXQgKHBhdGgsICZidWYpOw0KDQog
ICAgICAgaWYgKHJlc3VsdCA9PSAwKQ0KCSB7DQoJICAgY2VyciA8PCAic3Rf
ZGV2ID0gIiA8PCBidWYuc3RfZGV2IDw8IGVuZGw7DQoJICAgY2VyciA8PCAi
c3RfaW5vID0gIiA8PCBidWYuc3RfaW5vIDw8IGVuZGw7DQoJICAgY2VyciA8
PCAic3RfbW9kZSA9ICIgPDwgYnVmLnN0X21vZGUgPDwgZW5kbDsNCgkgICBj
ZXJyIDw8ICJzdF9ubGluayA9ICIgPDwgYnVmLnN0X25saW5rIDw8IGVuZGw7
DQoJICAgY2VyciA8PCAic3RfdWlkID0gIiA8PCBidWYuc3RfdWlkIDw8IGVu
ZGw7DQoJICAgY2VyciA8PCAic3RfZ2lkID0gIiA8PCBidWYuc3RfZ2lkIDw8
IGVuZGw7DQoJICAgY2VyciA8PCAic3RfcmRldiA9ICIgPDwgYnVmLnN0X3Jk
ZXYgPDwgZW5kbDsNCgkgICBjZXJyIDw8ICJzdF9zaXplID0gIiA8PCBidWYu
c3Rfc2l6ZSA8PCBlbmRsOw0KCSB9DQogICAgICAgZWxzZQ0KCSB7DQoJICAg
Y2VyciA8PCAiY2Fubm90IHN0YXQgIiA8PCBwYXRoOw0KCSAgIHBlcnJvciAo
IiIpOw0KCSB9DQogICAgIH0NCiAgcmV0dXJuIDA7DQp9DQo=

--1915750185-1610392959-924921191=:2983
Content-Type: text/plain; charset=us-ascii

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
--1915750185-1610392959-924921191=:2983--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019