X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-6.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_PGP_SIGNED,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org X-Received: by 10.152.131.137 with SMTP id om9mr68601385lab.18.1357838178530; Thu, 10 Jan 2013 09:16:18 -0800 (PST) Message-ID: <50EEF75E.1040106@gmail.com> Date: Thu, 10 Jan 2013 18:16:14 +0100 From: =?UTF-8?B?VsOhY2xhdiBaZW1hbg==?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Clang and windows headers References: <50EEEA49 DOT 1050507 AT alice DOT it> In-Reply-To: <50EEEA49.1050507@alice.it> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig43DA939B63F99DD87900C8F3" X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --------------enig43DA939B63F99DD87900C8F3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 01/10/2013 05:20 PM, Angelo Graziosi wrote: > Trying to compile a C++ source file including windows.h header with > clang++, fails with >=20 > #error Must define a target architecture I have hit this too with log4cplus. This is my workaround: // Work around missing _X86_ symbol with Clang on Cygwin. #if ! defined (_X86_) && defined (__i386__) # define _X86_ 1 #endif #include >=20 >=20 > For example, >=20 > $ cat foo.cxx > #include >=20 > int main() > { > return 0; > } >=20 > $ clang++ -c foo.cxx -o foo.o > In file included from foo.cxx:1: > In file included from /usr/include/w32api/windows.h:69: > In file included from /usr/include/w32api/windef.h:139: > /usr/include/w32api/winnt.h:375:2: error: Must define a target > architecture. > #error Must define a target architecture. > ^ > /usr/include/w32api/winnt.h:2410:7: error: unknown type name 'PCONTEXT'; > did you > mean '_CONTEXT'? > PCONTEXT ContextRecord; > ^ > /usr/include/w32api/excpt.h:84:96: note: '_CONTEXT' declared here > ..._EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); > ^ > In file included from foo.cxx:1: > In file included from /usr/include/w32api/windows.h:69: > In file included from /usr/include/w32api/windef.h:139: > /usr/include/w32api/winnt.h:2410:16: error: field has incomplete type > '_CONTEXT' > PCONTEXT ContextRecord; > ^ > /usr/include/w32api/excpt.h:84:96: note: forward declaration of '_CONTEXT' > ..._EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); > ^ > In file included from foo.cxx:1: > In file included from /usr/include/w32api/windows.h:69: > In file included from /usr/include/w32api/windef.h:139: > /usr/include/w32api/winnt.h:5668:25: error: variable has incomplete type > 'void' > NTSYSAPI VOID NTAPI RtlCaptureContext(PCONTEXT ContextRecord); > ^ > /usr/include/w32api/winnt.h:5668:43: error: use of undeclared identifier > 'PCONTEXT' > NTSYSAPI VOID NTAPI RtlCaptureContext(PCONTEXT ContextRecord); > ^ > In file included from foo.cxx:1: > In file included from /usr/include/w32api/windows.h:70: > /usr/include/w32api/winbase.h:611:11: error: unknown type name > 'PCONTEXT'; did > you mean '_CONTEXT'? > typedef PCONTEXT LPCONTEXT; > ^ > /usr/include/w32api/excpt.h:84:96: note: '_CONTEXT' declared here > ..._EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); > ^ > In file included from foo.cxx:1: > In file included from /usr/include/w32api/windows.h:70: > /usr/include/w32api/winbase.h:1375:67: error: unknown type name > 'CONTEXT'; did > you mean '_CONTEXT'? > ...WINAPI SetThreadContext(HANDLE hThread,CONST CONTEXT *lpContext); > ^ > /usr/include/w32api/excpt.h:84:96: note: '_CONTEXT' declared here > ..._EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); > ^ > 7 errors generated. >=20 >=20 > Really I have seen this the first time trying to build the next release > of ROOT (i.e. source from svn; the main page for ROOT is : > http://root.cern.ch). >=20 > Indeed now ROOT uses clang tools to build (GCC is used to bootstrap > ROOT's patched version of CLANG...). Nevertheless the same errors occurs > using Cygwin's CLANG as the above simple test case shows... -- VZ --------------enig43DA939B63F99DD87900C8F3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) Comment: Using GnuPG with undefined - http://www.enigmail.net/ iF4EAREIAAYFAlDu918ACgkQ6OWUyaYNY6Pe3AD8DnRJpi9ov4gtEaVTZVz03i5y RsoPlysCyQwVcemG3qoA/ArqYR1+Q+n9xcVclkQxMv3Wj/Nzf4DtwtG2A1xBj0lj =ou6d -----END PGP SIGNATURE----- --------------enig43DA939B63F99DD87900C8F3--