GNU MPFR 2.4.2 Release Candidate
Dennis Clarke
dclarke at blastwave.org
Wed Aug 26 19:28:58 CEST 2009
> The release of GNU MPFR 2.4.2 ("andouillette sauce moutarde"
> patch level 2) is imminent. Please help to make this release
> as good as possible by downloading and testing this release
> candidate:
It fails to build right away on Solaris 8 with Sun Studio 11 :
source='../../mpfr-2.4.2-rc1/exceptions.c' object='exceptions.lo'
libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../../mpfr-2.4.2-rc1/depcomp \
/bin/bash ./libtool --tag=CC --mode=compile
/opt/studio/SOS11/SUNWspro/bin/cc -DHAVE_INTTYPES_H=1
-DTIME_WITH_SYS_TIME=1 -DHAVE_LOCALE_H=1 -DHAVE_WCHAR_H=1
-DHAVE_STDARG=1 -DHAVE_SYS_TIME_H=1 -DHAVE_VA_COPY=1
-DHAVE_SETLOCALE=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_LONG_LONG=1
-DHAVE_INTMAX_T=1 -DHAVE_DENORMS=1 -DHAVE_FLOOR=1 -DHAVE_CEIL=1
-DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1 -DLT_OBJDIR=\".libs/\"
-DHAVE_ALLOCA_H=1 -DNPRINTF_J=1 -DNPRINTF_T=1 -I.
-I../../mpfr-2.4.2-rc1 -I/opt/csw/include -I/opt/csw/include
-xstrconst -xildoff -xarch=386 -xnolibmil -Xa -Kpic
-xregs=no%frameptr -xlibmieee -g -Qy -xdebugformat=dwarf -xs
-D_TS_ERRNO -c -o exceptions.lo ../../mpfr-2.4.2-rc1/exceptions.c
libtool: compile: /opt/studio/SOS11/SUNWspro/bin/cc -DHAVE_INTTYPES_H=1
-DTIME_WITH_SYS_TIME=1 -DHAVE_LOCALE_H=1 -DHAVE_WCHAR_H=1 -DHAVE_STDARG=1
-DHAVE_SYS_TIME_H=1 -DHAVE_VA_COPY=1 -DHAVE_SETLOCALE=1
-DHAVE_GETTIMEOFDAY=1 -DHAVE_LONG_LONG=1 -DHAVE_INTMAX_T=1
-DHAVE_DENORMS=1 -DHAVE_FLOOR=1 -DHAVE_CEIL=1
-DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1 -DLT_OBJDIR=\".libs/\" -DHAVE_ALLOCA_H=1
-DNPRINTF_J=1 -DNPRINTF_T=1 -I. -I../../mpfr-2.4.2-rc1 -I/opt/csw/include
-I/opt/csw/include -xstrconst -xildoff -xarch=386 -xnolibmil -Xa -Kpic
-xregs=no%frameptr -xlibmieee -g -Qy -xdebugformat=dwarf -xs -D_TS_ERRNO
-c ../../mpfr-2.4.2-rc1/exceptions.c -KPIC -DPIC -o .libs/exceptions.o
"../../mpfr-2.4.2-rc1/mpfr.h", line 315: syntax error before or at: intmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 315: warning: undefined or missing
type for: intmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 315: warning: undefined or missing
type for: mpfr_rnd_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 317: syntax error before or at: intmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 317: warning: undefined or missing
type for: intmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 317: syntax error before or at:
mpfr_rnd_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 317: warning: undefined or missing
type for: mpfr_rnd_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 318: syntax error before or at: uintmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 318: warning: undefined or missing
type for: uintmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 318: warning: undefined or missing
type for: mpfr_rnd_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 320: syntax error before or at: uintmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 320: warning: undefined or missing
type for: uintmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 320: syntax error before or at:
mpfr_rnd_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 320: warning: undefined or missing
type for: mpfr_rnd_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 321: warning: old-style declaration or
incorrect type for: intmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 321: syntax error before or at:
__gmpfr_mpfr_get_sj
"../../mpfr-2.4.2-rc1/mpfr.h", line 321: warning: old-style declaration or
incorrect type for: __gmpfr_mpfr_get_sj
"../../mpfr-2.4.2-rc1/mpfr.h", line 322: warning: old-style declaration or
incorrect type for: uintmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 322: syntax error before or at:
__gmpfr_mpfr_get_uj
"../../mpfr-2.4.2-rc1/mpfr.h", line 322: warning: old-style declaration or
incorrect type for: __gmpfr_mpfr_get_uj
"/usr/include/sys/int_types.h", line 94: identifier redeclared: intmax_t
current : long long
previous: int : "../../mpfr-2.4.2-rc1/mpfr.h", line 321
"/usr/include/sys/int_types.h", line 95: identifier redeclared: uintmax_t
current : unsigned long long
previous: int : "../../mpfr-2.4.2-rc1/mpfr.h", line 322
cc: acomp failed for ../../mpfr-2.4.2-rc1/exceptions.c
gmake[1]: *** [exceptions.lo] Error 1
gmake[1]: Leaving directory
`/export/medusa/dclarke/build/libmpfr/i386/mpfr-2.4.2-rc1-i386-try1'
gmake: *** [all-recursive] Error 1
Not pretty. I'll try another compiler but I think the absent "intmax_t" is
supposed to be in /usr/include/sys/int_types.h :
Older ( and still in datacenters ) Solaris 8 says :
/*
* intmax_t and uintmax_t are to be the longest (in number of bits) signed
* and unsigned integer types supported by the implementation.
*/
#if defined(_LP64) || (__STDC__ - 0 == 0 && !defined(_NO_LONGLONG))
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
#else
typedef int32_t intmax_t;
typedef uint32_t uintmax_t;
#endif
Which is not quite the same thing as Solaris Nevada snv_121 which says this :
/*
* intmax_t and uintmax_t are to be the longest (in number of bits) signed
* and unsigned integer types supported by the implementation.
*/
#if defined(_INT64_TYPE)
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
#else
typedef int32_t intmax_t;
typedef uint32_t uintmax_t;
#endif
so I'll just look in mpfr.h where I see :
/* Check if <stdint.h> / <inttypes.h> is included or if the user
explicitly wants intmax_t. Note: with C++ implementations, the
test of the C99 macros will work only if the user has defined
__STDC_LIMIT_MACROS or __STDC_CONSTANT_MACROS before <stdint.h>
has been included (see ISO C99 standard); that's why _STDINT_H
(defined by the glibc) and _STDINT_H_ (defined under Mac OS X)
are tested too, but under other OS, MPFR_USE_INTMAX_T may need
to be defined. */
#if ((defined (INTMAX_C) || defined (INTMAX_MAX)) && \
(defined (UINTMAX_C) || defined (UINTMAX_MAX))) || \
defined (MPFR_USE_INTMAX_T) || defined (_STDINT_H) || defined (_STDINT_H_)
# define _MPFR_H_HAVE_INTMAX_T 1
#endif
If I try -DMPFR_USE_INTMAX_T I get the same result as above.
If I manually define intmax_t in mpfr.h I get a error like so :
"../../mpfr-2.4.2-rc1/mpfr.h", line 66: warning: no explicit type given
"../../mpfr-2.4.2-rc1/mpfr.h", line 66: syntax error before or at: intmax_t
"../../mpfr-2.4.2-rc1/mpfr.h", line 66: warning: old-style declaration or
incorrect type for: intmax_t
So at this point I may as well switch over to GCC or Studio 12. I'll let
you know what I see.
--
Dennis Clarke
dclarke at opensolaris.ca <- Email related to the open source Solaris
dclarke at blastwave.org <- Email related to open source for Solaris
More information about the gmp-discuss
mailing list