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