Subject: Re: bug#18699: 25.0.50; Windows 7: Odd length text property list

From: Eli Zaretskii <[email-masked]>
Date: Mon, 13 Oct 2014 23:25:16 +0300

> From: [email-masked] (Óscar Fuentes)
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> Date: Mon, 13 Oct 2014 21:39:33 +0200
> 
> Ken Brown <[email-masked]> writes:
> 
> > Right.  And it's *not* about the processor.  gcc running under 32-bit
> > Cygwin will not define __x86_64__, regardless of the processor.
> 
> It is about the *target* processor of the compiler. Obviously if you
> target x86 then __x86_64__ is expected to be undefined, regardless of
> the *host* processor.
> 
> OTOH if you are saying that Cygwin does not define __x86_64__ when you
> are cross-compiling to a x86_64 target on a x86 host, I'll consider that
> a bug.
> 
> My understanding now is that the __x86_64__ test is there because Cygwin
> does not define _WIN64.

A 64-bit build on Windows, whether a Cygwin build or a MinGW64 build,
doesn't need the force_align_arg_pointer, since the 64-bit ABI
requires the 8-byte alignment.  The __x86_64__ is there to exclude the
64-bit Cygwin build.  If it can also exclude the MinGW64 build, we
don't need any MinGW64-specific symbols there.

> Eli, both MinGW and MinGW-w64 compilers support sjlj and Dwarf exception
> methods on x86.

But what is the default one?  That's what's important.

> And since when we do care about C++ here? ;-)

At least the DWARF2-based exceptions machinery comes into play in C
programs as well, see the few Emacs crashes we had with libraries
linked against the libgcc DLL.