Bill Hart wrote:
> Hi all,
>
> It is with pleasure that we release MPIR 2.6.0 alpha1. The source and
> documentation can be downloaded at
http://mpir.org/
>
> This release contains a new FFT, support for intmax_t integers, a
> Python build generator and various bug fixes.
>
> The alpha version has been tested on only a few architectures at this
> point. We appreciate any and all build/bug reports. Once testing is
> complete, the status will be upgraded to beta or perhaps final.
FWIW, I've successfully built MPIR 2.6.0-alpha1 (with '--enable-cxx' and
'--enable-gmpcompat') and run 'make check' on the following platforms:
Linux PPC64 (SLES 11, POWER7), GCC 4.3.4 (without C++ support)
Linux PPC64 (SLES 11, POWER7), GCC 4.6.3
Solaris SPARC (SunOS 5.10, UltraSPARC III), GCC 4.7.0, ABI=32
Solaris SPARC (SunOS 5.10, UltraSPARC III), GCC 4.7.0, ABI=64
I didn't try to (re)build/test anything using GMP/MPIR though.
On Linux IA64 (SLES 10, Itanium) in contrast, I got the following failures:
With the (fairly old) "native" GCC 4.1.2, building the testsuite fails:
make[4]: Entering directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.1.2/tests/cxx'
g++ -DHAVE_CONFIG_H -I. -I../../../mpir-2.6.0-alpha1/tests/cxx -I../..
-I../../../mpir-2.6.0-alpha1 -I../../../mpir-2.6.0-alpha1/tests -O2
-c -o t-assign.o ../../../mpir-2.6.0-alpha1/tests/cxx/t-assign.cc
../../../mpir-2.6.0-alpha1/mpirxx.h:1587: error:
�__gmp_expr<__mpz_struct [1], __mpz_struct [1]>::__gmp_expr(intmax_t)�
cannot be overloaded
../../../mpir-2.6.0-alpha1/mpirxx.h:1578: error: with
�__gmp_expr<__mpz_struct [1], __mpz_struct [1]>::__gmp_expr(long int)�
../../../mpir-2.6.0-alpha1/mpirxx.h:1588: error:
�__gmp_expr<__mpz_struct [1], __mpz_struct [1]>::__gmp_expr(uintmax_t)�
cannot be overloaded
../../../mpir-2.6.0-alpha1/mpirxx.h:1579: error: with
�__gmp_expr<__mpz_struct [1], __mpz_struct [1]>::__gmp_expr(long
unsigned int)�
../../../mpir-2.6.0-alpha1/mpirxx.h:1656: error:
�__gmp_expr<__mpz_struct [1], __mpz_struct [1]>& __gmp_expr<__mpz_struct
[1], __mpz_struct [1]>::operator=(intmax_t)� cannot be overloaded
../../../mpir-2.6.0-alpha1/mpirxx.h:1647: error: with
�__gmp_expr<__mpz_struct [1], __mpz_struct [1]>& __gmp_expr<__mpz_struct
[1], __mpz_struct [1]>::operator=(long int)�
../../../mpir-2.6.0-alpha1/mpirxx.h:1657: error:
�__gmp_expr<__mpz_struct [1], __mpz_struct [1]>& __gmp_expr<__mpz_struct
[1], __mpz_struct [1]>::operator=(uintmax_t)� cannot be overloaded
../../../mpir-2.6.0-alpha1/mpirxx.h:1648: error: with
�__gmp_expr<__mpz_struct [1], __mpz_struct [1]>& __gmp_expr<__mpz_struct
[1], __mpz_struct [1]>::operator=(long unsigned int)�
make[4]: *** [t-assign.o] Error 1
make[4]: Leaving directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.1.2/tests/cxx'
make[3]: *** [check-am] Error 2
make[3]: Leaving directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.1.2/tests/cxx'
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.1.2/tests'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.1.2'
make: *** [check] Error 2
$ gcc -v
Using built-in specs.
Target: ia64-suse-linux
Configured with: ../configure --enable-threads=posix --prefix=/usr
--with-local-prefix=/usr/local --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.1.2
--enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib
--with-system-zlib --enable-shared --enable-__cxa_atexit
--enable-libstdcxx-allocator=new --program-suffix=
--enable-version-specific-runtime-libs --with-system-libunwind
--host=ia64-suse-linux
Thread model: posix
gcc version 4.1.2 20070115 (prerelease) (SUSE Linux)
(No idea whether any recent version of MPIR does build with that version
of GCC.)
Without '--enable-cxx', the testsuite builds and passes.
With GCC 4.7.0 (and CFLAGS="-O0 -finline-functions -fschedule-insns",
since this version is severely broken on Itanium) I get:
libtool: link: ranlib .libs/libtests.a
libtool: link: ( cd ".libs" && rm -f "
libtests.la" && ln -s
"../
libtests.la" "
libtests.la" )
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../mpir-2.6.0-alpha1/tests -I..
-I../../mpir-2.6.0-alpha1 -O0 -finline-functions -fschedule-insns -c
../../mpir-2.6.0-alpha1/tests/t-bswap.c
/bin/sh ../libtool --tag=CC --mode=link gcc -std=gnu99 -O0
-finline-functions -fschedule-insns -o t-bswap t-bswap.o
libtests.la
../
libmpir.la
libtool: link: gcc -std=gnu99 -O0 -finline-functions -fschedule-insns -o
.libs/t-bswap t-bswap.o ./.libs/libtests.a
/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.7.0/.libs/libmpir.so
-lm ../.libs/libmpir.so
/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.7.0/.libs/libmpir.so:
undefined reference to `mpn_addmod_2expp1_1'
collect2: error: ld returned 1 exit status
make[4]: *** [t-bswap] Error 1
make[4]: Leaving directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.7.0/tests'
make[3]: *** [check-am] Error 2
make[3]: Leaving directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.7.0/tests'
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.7.0/tests'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory
`/home/leif/src/mpir-2.6.0-alpha1-build.iras-gcc-4.7.0'
make: *** [check] Error 2
Btw, invalid options to 'configure' (e.g. '--enable-gmp-compat' or
'--enable-foo') are silently ignored, even with '-v'; probably just some
(newer) autotools "feature"...
-leif
>
> Thank you to the all people who made comments on our development list,
> who provided bug reports and helped with testing. This includes, but
> is probably not limited to Case van Horsen, David Cleaver, Pavel
> Holoborodko and Sisyphus.
>
> A full list of code contributions to MPIR can be found in the AUTHORS
> file in the source tarball.
>
> Best Wishes,
>
> The MPIR Team.
--
() The ASCII Ribbon Campaign
/\ Help Cure HTML E-Mail