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: C++ program only compiles if -mno-cygwin specified


On Fri, Jul 14, 2006 at 10:55:22PM +0200, Eric Lilja wrote:
>Hello, I'm using a fully updated cygwin and it seems that it puts macros 
>named BIG_ENDIAN and LITTLE_ENDIAN into global scope if include <stdio.h> 
>(or <cstdio>). If the program is compiled with -mno-cygwin, these macros are 
>not present. This prevented me from compiling a third party library 
>out-of-the-box. Here's a condensed test case that will only compile in 
>MinGW-mode:
>#include <cstdio>
>
>int
>main()
>{
>   enum TArch1 {LITTLE_ENDIAN};
>   enum TArch2 {BIG_ENDIAN};
>}
>
>Maybe these macros need not to be in global scope for cygwin to function or 
>maybe I can do something else and still compile the third party library 
>under cygwin without editing the library code?

There is no way to change this behavior other than in source code.

Cygwin's stdio.h includes sys/types.h which defines these values.  The
stdio header file from glibc does not include sys/types.h.  If it did,
you'd have the same problem.

sed -pi.bak -e 's/LITTLE_ENDIAN/MY_LITTLE_ENDIAN/g' *.[ch]

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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