I just discovered why this happened for Sage. It turns out that there
are two ways to build mpfr. One is --with-gmp and the other is
--with-gmp-build. The latter speeds up mpfr by making use of internal
GMP symbols, assuming you have access to a source build of GMP. If you
build mpfr with the latter option against MPIR it currently fails.
However the former still works because it only uses the published
public interface. I guess whoever did this in Sage didn't realise that
the MPIR and GMP internals are not compatible.

Bill.

On 16 March 2012 11:10, leif <[email protected]> wrote:
> Bill Hart wrote:
>>
>> On 16 March 2012 09:18, leif<[email protected]>  wrote:
>>>
>>> Jason wrote:
>>>>
>>>> and the first missing functions are
>>>>
>>>> ../../../mpfr-3.1.0/src/mulders.c: In function
>>>> 'mpfr_divhigh_n_basecase':
>>>> ../../../mpfr-3.1.0/src/mulders.c:208:3: error: 'gmp_pi1_t' undeclared
>>>> (first use in this function)
>>>> ../../../mpfr-3.1.0/src/mulders.c:208:3: note: each undeclared
>>>> identifier
>>>> is reported only once for each function it appears in
>>>> ../../../mpfr-3.1.0/src/mulders.c:208:14: error: expected ';' before
>>>> 'dinv2'
>>>> ../../../mpfr-3.1.0/src/mulders.c:229:3: warning: implicit declaration
>>>> of
>>>> function 'invert_pi1'
>>>> ../../../mpfr-3.1.0/src/mulders.c:229:15: error: 'dinv2' undeclared
>>>> (first
>>>> use in this function)
>>>> ../../../mpfr-3.1.0/src/mulders.c:244:9: warning: implicit declaration
>>>> of
>>>> function 'udiv_qr_3by2'
>>>> make[2]: *** [mulders.lo] Error 1
>>>>
>>>> I'll add the new undocumented functions this weekend to the svn for a
>>>> mpir-2.5.2 release in the next week or so
>>>
>>>
>>>
>>>
>>> Note that MPFR 3.1.0 builds and works well with (still) MPIR 2.1.3 in
>>> Sage,
>>> so these types and functions must have been removed from MPIR at some
>>> point,
>>> unless I'm missing something...
>>>
>>
>> gmp_pi1_t was not defined in MPIR 2.1.3. Perhaps someone made a patch
>> in Sage to fix this.
>
>
> Nope, apparently upstream did.  There are currently 8 bugs with patches
> mentioned (see http://www.mpfr.org/mpfr-current/#fixed), but none of them is
> related to this, so maybe they /silently/ changed the tarball, or *when* and
> where did Jason get his one from?
>
> In Sage (and in the current upstream tarball) we [already] have:
>
> static mp_limb_t
> mpfr_divhigh_n_basecase (mpfr_limb_ptr qp, mpfr_limb_ptr np,
>                         mpfr_limb_srcptr dp, mp_size_t n)
> {
>  mp_limb_t qh, d1, d0, dinv, q2, q1, q0;
>  mpfr_pi1_t dinv2;
>
>  ...
>
>
> -leif
>
>
>
>
>> This type is used for functions that take a precomputed inverse in
>> GMP. We have similar in MPIR, but the name is not the same.
>>
>> The MPFR people have been doing a great job of checking MPFR is
>> compatible with MPIR, so I'm not sure how this has slipped through.
>> Anyhow, it's easy to fix.
>>
>> Bill.
>>
>
>
> --
> () The ASCII Ribbon Campaign
> /\ Help Cure HTML E-Mail
>
> --
> You received this message because you are subscribed to the Google Groups
> "mpir-devel" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/mpir-devel?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to