This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Piping on 64-bit Cygwin was Re: [ANNOUNCEMENT] llvm 3.7.1-2


On Jun 22 10:01, Warren Young wrote:
> On Jun 22, 2016, at 9:36 AM, Corinna Vinschen <corinna-cygwin@cygwin.com> wrote:
> > 
> >> 64-bit Windows is LLP64, while 64-bit Linux is LP64 on the same hardware.
> > 
> > s/Linux/Linux and Cygwin/
> 
> Well, that was unexpected.

The FAQ entry is just as old as the first 64 bit release...

> Still, you could get similar problems.  ifdefs for portable
> sized-integer types are a particularly rich source of bugs, especially
> ones where #ifdef WINDOWS precedes any test that could match Cygwin,
> since WINDOWS is defined in Cygwinâs GCC, and as this exchange shows,

No, it isn't.  Neither is _WIN32 or _WINNT_, unless you include
<windows.h>.  Try `gcc -dM -E - < /dev/null | grep WIN'

> Cygwinâs GCC doesnât always behave exactly the same as Visual C++.
> 
> Any such case will compile under Cygwin.  You need to reorder such
> cases so a the test for WINDOWS is after one matching Cygwin, as a
> rule.

Varargs functions are fun.  A type mismatch int/long in the 5th and 6th
arg would be invisible on Linux but potentially crash on Cygwin due to
the ABI difference (MS vs. SysV).  We found a bug in OpenLDAP this way.

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: signature.asc
Description: PGP signature


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