delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/01/10/12:16:47

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==?= <vhaisman AT gmail DOT com>
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>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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 <windows.h>

>=20
>=20
> For example,
>=20
> $ cat foo.cxx
> #include <windows.h>
>=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--

- Raw text -


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