This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Darwin bootstrap failure following wide int merge (was: we are starting the wide int merge)
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: FX <fxcoudert at gmail dot com>, Mike Stump <mikestump at comcast dot net>, echristo at gmail dot com, Stan Shebs <stanshebs at earthlink dot net>, GCC Development <gcc at gcc dot gnu dot org>, glisse at gcc dot gnu dot org, Richard Sandiford <rdsandiford at googlemail dot com>, Kenneth Zadeck <zadeck at naturalbridge dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>, Gerald Pfeifer <gerald at pfeifer dot com>
- Date: Wed, 28 May 2014 12:07:41 +0200
- Subject: Re: Darwin bootstrap failure following wide int merge (was: we are starting the wide int merge)
- Authentication-results: sourceware.org; auth=none
- References: <97BE9F46-EB35-4B06-9065-915D7259E701 at gmail dot com> <769D0D77-6DB3-421F-9006-326B0E2B42FE at gmail dot com> <71C2DDBB-87AE-491D-9074-F5744B8AFF61 at comcast dot net> <20140528065033 dot GV10386 at tucnak dot redhat dot com> <CAFiYyc2tLShbmh_4RzMqCO+yky8voEOhTpY1aqjYMLq+dAP8Pg at mail dot gmail dot com> <494AF306-EB09-4F70-BCF8-95E892BF618B at gmail dot com> <CAFiYyc0Fw+BWqY=sVzuMSr-=ccLY9u9zxVEu2AS379v=BYT3pA at mail dot gmail dot com> <20140528094848 dot GX10386 at tucnak dot redhat dot com> <CAFiYyc0xr-U_X325GS5NDjazmp2Hm3m3=Cskyw4SnKTo6-DcXw at mail dot gmail dot com>
On Wed, May 28, 2014 at 12:03 PM, Richard Biener
<richard.guenther@gmail.com> wrote:
> On Wed, May 28, 2014 at 11:48 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>> On Wed, May 28, 2014 at 11:38:55AM +0200, Richard Biener wrote:
>>> On Wed, May 28, 2014 at 10:24 AM, FX <fxcoudert@gmail.com> wrote:
>>> >> Yeah, a portable (C and C++) static assert would be nice. And also pushing
>>> >> this to gmp then.
>>> >>
>>> >> In the meantime I see nothing wrong in "merging" from GMP.
>>> >
>>> > One question, one comment:
>>> >
>>> > 1. can I count your âI see nothing wrongâ as an approval, as in âglobal reviewers can approve changes to any part of the compiler or associated librariesâ?
>>>
>>> Well, kind of. But Jakub is as well, so I don't want to override him. So
>>> please wait for an ack from Jakub. I agree with him that the casts
>>> served a purpose and that, if removed, they need to be replaced with
>>> an appropriate assertion measure.
>>
>> I think my preference would be to change include/ansidecl.h to:
>>
>> /* This macro simplifies testing whether we are using gcc, and if it
>> is of a particular minimum version. (Both major & minor numbers are
>> significant.) This macro will evaluate to 0 if we are not using
>> gcc at all.*/
>> #ifndef GCC_VERSION
>> +/* Some compilers pretend to be GCC, even when they are not. */
>> +#if defined(__clang__) || defined(__INTEL_COMPILER)
>> +#define GCC_VERSION 0
>> +#else
>> #define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
>> +#endif
>> #endif /* GCC_VERSION */
>>
>> so that we really can trust the GCC_VERSION macro, casts in lhs of inline
>> asm isn't the only incompatibility clang has.
>>
>> Any other compilers that define __GNUC__?
>
> Every one I guess. ICC 9 has it defined to 4, __GNUC_MINOR__ to 0.
So if we want to go down that route I'd rather change the configury that
checks whether we are using GCC to be more pedantic and for example
parse $CC --version output (not for the actual version but for whether
$CC is GCC).
Richard.
> Richard.
>
>> Jakub