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

Corinna Vinschen corinna-cygwin@cygwin.com
Wed Jun 22 18:40:00 GMT 2016


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20160622/210e828e/attachment.sig>


More information about the Cygwin mailing list