This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH committed] Fix build failure with MPFR 2.4.x (gimple-ssa-sprintf.c)
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Richard Biener <rguenther at suse dot de>, Martin Sebor <msebor at gmail dot com>, Markus Trippelsdorf <markus at trippelsdorf dot de>, gcc-patches at gcc dot gnu dot org
- Date: Fri, 27 Jan 2017 11:14:34 +0100
- Subject: Re: [PATCH committed] Fix build failure with MPFR 2.4.x (gimple-ssa-sprintf.c)
- Authentication-results: sourceware.org; auth=none
- References: <20170124093757.GA288@x4> <fd6f2d44-e1bc-aa70-a277-469b6c272e30@gmail.com> <yddo9ytlzjs.fsf@CeBiTec.Uni-Bielefeld.DE> <20170127082023.GQ1867@tucnak>
Hi Jakub,
> On Fri, Jan 27, 2017 at 08:41:59AM +0100, Rainer Orth wrote:
>> > On 01/24/2017 02:37 AM, Markus Trippelsdorf wrote:
>> >> MPFR_RNDx was introduced in MPFR 3.0.0. Since the minimal version that
>> >> gcc checks for is 2.4.0, this leads to a build failure.
>> >>
>> >> The fix is straightforward.
>> >>
>> >> Tested on x86_64-pc-linux-gnu. Committed to trunk as obvious.
>> >>
>> >> * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
>> >> GMP_RNDx for compatibility.
>> >
>> > This was changed once before for this reason (in r240350). I forgot
>> > all about it and put it back in my latest patch for some reason. I
>> > don't remember why exactly but I suspect I might have been trying to
>> > overcome some MPFR oddity. It might help to #undef the MPFR_RNDx
>> > macros after including <mpfr.h> to avoid this in the future. In any
>> > event, thanks for the fix.
>>
>> we certainly should do something like this: your latest patch introduced
>> the same failure again:
>>
>> /vol/gcc/src/hg/trunk/local/gcc/gimple-ssa-sprintf.c: In function 'long long unsigned int {anonymous}::format_floating_max(tree, char, long long int)':
>> /vol/gcc/src/hg/trunk/local/gcc/gimple-ssa-sprintf.c:1501:27: error: 'MPFR_RNDN' was not declared in this scope
>> mpfr_from_real (x, &rv, MPFR_RNDN);
>> ^
>> Makefile:1098: recipe for target 'gimple-ssa-sprintf.o' failed
>> make[3]: *** [gimple-ssa-sprintf.o] Error 1
>
> So what about poisoning MPFR_RND{N,D,Z,U} then?
>
> With mpfr 3.1.5 it seems to work, both when using system gcc (6.3.1)
> and when building in stage3. I don't have mpfr 2.4.* around and apparently
> it is incompatible with gmp 6.1.x, so I'd have to build both gmp and mpfr
> (and likely mpc too). Can you just quickly try this if it works for you?
sure: just tried a sparc-sun-solaris2.12 bootstrap with gcc 4.9 and mpfr
2.4.2-p3. Successfully built the stage1 and stage2 compilers.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University