summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--acconfig.h3
-rw-r--r--config/BlankForm5
-rw-r--r--config/intel-osf181
-rw-r--r--config/irix5.355
-rwxr-xr-xconfigure57
-rw-r--r--configure.in22
-rw-r--r--src/H5.c35
-rw-r--r--src/H5config.h.in3
8 files changed, 185 insertions, 76 deletions
diff --git a/acconfig.h b/acconfig.h
index 4f5b402..ee300ea 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -9,3 +9,6 @@
/* Define if it's safe to use `long long' for hsize_t and hssize_t */
#undef HAVE_LARGE_HSIZET
+
+/* The width parameter for printf formats for type `long long', us. `ll' */
+#undef PRINTF_LL_WIDTH
diff --git a/config/BlankForm b/config/BlankForm
index a844dea..5ff807b 100644
--- a/config/BlankForm
+++ b/config/BlankForm
@@ -41,3 +41,8 @@ PROFILE_CPPFLAGS=
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
+
+# Set this to the width required by printf() to print type `long
+# long'. For instance, if the format would be `%lld' then set it to
+# `ll' or if the format would be `%qd' set it to `q'.
+#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
diff --git a/config/intel-osf1 b/config/intel-osf1
index 66c643c..840afd4 100644
--- a/config/intel-osf1
+++ b/config/intel-osf1
@@ -1,55 +1,52 @@
-# Site configuration -- do not distribute this file.
+# -*- shell-script -*-
+#
+# This file is part of the HDF5 build script. It is processed shortly
+# after configure starts and defines, among other things, flags for
+# the various compile modes.
+
+
+#----------------------------------------------------------------------------
+# Compiler flags. The CPPFLAGS values should not include package debug
+# flags like `-DH5G_DEBUG' since these are added with the
+# `--enable-debug' switch of configure.
+# Sometimes a particular compiler must be used. If that's the case
+# then uncomment the following line. Otherwise the main configure
+# script will try to detect the compiler automatically.
CC=cicc
AR=xar
-RANLIB=true
+RANLIB=:
LIBS="-L./ -L../ -lnoop_stubs"
RUNTEST="yod -sz 1"
-export CC AR RANLIB LIBS RUNTEST
-
-# Based on the setting of environment variable `HDF5_MODE' we set the
-# compiler flags unless they're already set. Its value can be one or
-# more of the following words (be sure to use single quotes when
-# setting its value or the dollar signs will be expanded as variables
-# too soon):
-#
-# $warn -- Generates compiler warnings. You should always
-# include this since it has no effect on the speed of
-# the code produced.
-#
-# $debug -- Compiles in code to check for invariant conditions
-# and turns on the `-g' flag for interactive
-# debugging. It also turns off seek optimizations in
-# the low-level file driver. This version of the
-# library can be significantly slower than a production
-# version.
-#
-# $production -- Compiles an optimized version of the library
-# and disables code that checks for invariant
-# conditions.
-#
-# $profile -- Compiles code with the `-pg' flag which
-# produces a `gmon.out' file when the library
-# runs. The gprof(1) command can read that file
-# and produce detailed run-time statistics.
-#
+# What must *always* be present for things to compile correctly?
+CFLAGS="$CFLAGS -DDOS386"
+#CPPFLAGS="$CPPFLAGS -I."
-# Unconditionally set the compiler to cicc since the following flags
-# only apply to that compiler.
+# What compiler flags should be used for code development?
+DEBUG_CFLAGS=-g
+DEBUG_CPPFLAGS=
-warn=""
+# What compiler flags should be used for building a production
+# library?
+PROD_CFLAGS=-O
+PROD_CPPFLAGS=
-profile="-pg"
+# What compiler flags enable code profiling?
+PROFILE_CFLAGS=-pg
+PROFILE_CPPFLAGS=
-debug="-g -DH5AC_DEBUG -DH5B_DEBUG -DH5F_DEBUG -DH5G_DEBUG -UH5O_DEBUG -DH5T_DEBUG -DH5F_OPT_SEEK=0"
-production="-O -DNDEBUG"
+#----------------------------------------------------------------------------
+# Values for overriding configuration tests when cross compiling.
+# This includes compiling on some machines where the serial front end
+# compiles for a parallel back end.
-default_mode='-DDOS386 $debug $warn -DH5F_LOW_DFLT=H5F_LOW_SEC2'
+# Set this to `yes' or `no' depending on whether the target is big
+# endian or little endian.
+#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
-# Don't set CFLAGS if the user already did.
-if test -z "$CFLAGS"; then
- CFLAGS="`eval echo ${HDF5_MODE:-$default_mode}`"
- export CFLAGS
-fi
+# Set this to the width required by printf() to print type `long
+# long'. For instance, if the format would be `%lld' then set it to
+# `ll' or if the format would be `%qd' set it to `q'.
+#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
diff --git a/config/irix5.3 b/config/irix5.3
index e24bd25..acc375e 100644
--- a/config/irix5.3
+++ b/config/irix5.3
@@ -1,13 +1,50 @@
-#!/bin/sh
-# Site configuration -- do not distribute this file.
+# -*- shell-script -*-
+#
+# This file is part of the HDF5 build script. It is processed shortly
+# after configure starts and defines, among other things, flags for
+# the various compile modes.
-CC="cc"
-# -woff 799 about long long type non-standard
+#----------------------------------------------------------------------------
+# Compiler flags. The CPPFLAGS values should not include package debug
+# flags like `-DH5G_DEBUG' since these are added with the
+# `--enable-debug' switch of configure.
-RANLIB=: # SGI does not use ranlib
+# Sometimes a particular compiler must be used. If that's the case
+# then uncomment the following line. Otherwise the main configure
+# script will try to detect the compiler automatically.
+CC=cc
+RANLIB=:
+
+# What must *always* be present for things to compile correctly?
+CFLAGS="$CFLAGS -ansi -fullwarn -woff 799"
+#CPPFLAGS="$CPPFLAGS -I."
+
+# What compiler flags should be used for code development?
+DEBUG_CFLAGS=-g
+DEBUG_CPPFLAGS=
+
+# What compiler flags should be used for building a production
+# library?
+PROD_CFLAGS=-O
+PROD_CPPFLAGS=
+
+# What compiler flags enable code profiling?
+PROFILE_CFLAGS=-pg
+PROFILE_CPPFLAGS=
+
+
+#----------------------------------------------------------------------------
+# Values for overriding configuration tests when cross compiling.
+# This includes compiling on some machines where the serial front end
+# compiles for a parallel back end.
+
+# Set this to `yes' or `no' depending on whether the target is big
+# endian or little endian.
+#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
+
+# Set this to the width required by printf() to print type `long
+# long'. For instance, if the format would be `%lld' then set it to
+# `ll' or if the format would be `%qd' set it to `q'.
+#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
-# Don't set CFLAGS if the user already did.
-if test -z "$CFLAGS"; then
- CFLAGS="-ansi -fullwarn -woff 799"
-fi
diff --git a/configure b/configure
index ccfb0fc..f0d73e6 100755
--- a/configure
+++ b/configure
@@ -2082,8 +2082,49 @@ else
fi
rm -f conftest*
+echo $ac_n "checking how to print long long""... $ac_c" 1>&6
+echo "configure:2087: checking how to print long long" >&5;
+if eval "test \"`echo '$''{'hdf5_cv_printf_ll'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ for hdf5_cv_printf_ll in ll q l; do
+ if test "$cross_compiling" = yes; then
+ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2096 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+ main() {char *s=malloc(128);
+ long long x = (long long)1048576 * (long long)1048576;
+ sprintf(s,"%${hdf5_cv_printf_ll}d",x);
+ exit (strcmp(s,"1099511627776"));}
+EOF
+if { (eval echo configure:2107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -fr conftest*
+fi
+
+ done
+fi
+
+echo "$ac_t""$hdf5_cv_printf_ll" 1>&6
+cat >> confdefs.h <<EOF
+#define PRINTF_LL_WIDTH "$hdf5_cv_printf_ll"
+EOF
+
+
+
echo $ac_n "checking for debug flags""... $ac_c" 1>&6
-echo "configure:2087: checking for debug flags" >&5;
+echo "configure:2128: checking for debug flags" >&5;
# Check whether --enable-debug or --disable-debug was given.
if test "${enable_debug+set}" = set; then
enableval="$enable_debug"
@@ -2121,7 +2162,7 @@ if test "${enable_parallel+set}" = set; then
fi
echo $ac_n "checking for parallel support""... $ac_c" 1>&6
-echo "configure:2125: checking for parallel support" >&5;
+echo "configure:2166: checking for parallel support" >&5;
@@ -2148,7 +2189,7 @@ EOF
CFLAGS="$CFLAGS $MPI_LIB"
RUNTEST="$RUNTEST"
echo $ac_n "checking for main in -lmpi""... $ac_c" 1>&6
-echo "configure:2152: checking for main in -lmpi" >&5
+echo "configure:2193: checking for main in -lmpi" >&5
ac_lib_var=`echo mpi'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2156,14 +2197,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmpi $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2160 "configure"
+#line 2201 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:2167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2190,7 +2231,7 @@ else
echo "$ac_t""no" 1>&6
fi
echo $ac_n "checking for main in -lmpio""... $ac_c" 1>&6
-echo "configure:2194: checking for main in -lmpio" >&5
+echo "configure:2235: checking for main in -lmpio" >&5
ac_lib_var=`echo mpio'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2198,14 +2239,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmpio $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2202 "configure"
+#line 2243 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:2209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
diff --git a/configure.in b/configure.in
index b4f36af..676fcdc 100644
--- a/configure.in
+++ b/configure.in
@@ -204,6 +204,28 @@ AC_TRY_COMPILE(,[int f(void){return __FUNCTION__;}],
AC_MSG_RESULT(no))
dnl ----------------------------------------------------------------------
+dnl Try to figure out how to print `long long'. Some machines use `%lld'
+dnl and others use `%qd'. There may be more! The final `l' is a
+dnl default in case none of the others work.
+dnl
+AC_MSG_CHECKING(how to print long long);
+AC_CACHE_VAL(hdf5_cv_printf_ll,
+ for hdf5_cv_printf_ll in ll q l; do
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+ main() {char *s=malloc(128);
+ long long x = (long long)1048576 * (long long)1048576;
+ sprintf(s,"%${hdf5_cv_printf_ll}d",x);
+ exit (strcmp(s,"1099511627776"));}],
+ break)
+ done)
+AC_MSG_RESULT($hdf5_cv_printf_ll)
+AC_DEFINE_UNQUOTED(PRINTF_LL_WIDTH,"$hdf5_cv_printf_ll")
+
+
+dnl ----------------------------------------------------------------------
dnl Turn on debugging by setting compiler flags
dnl
AC_MSG_CHECKING(for debug flags);
diff --git a/src/H5.c b/src/H5.c
index 7267461..c9e755e 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -462,7 +462,7 @@ HDfprintf (FILE *stream, const char *fmt, ...)
int plussign;
int ldspace;
int prefix;
- int modifier;
+ char modifier[8];
int conv;
char *rest, template[128];
const char *s;
@@ -479,7 +479,7 @@ HDfprintf (FILE *stream, const char *fmt, ...)
plussign = 0;
prefix = 0;
ldspace = 0;
- modifier = 0;
+ modifier[0] = '\0';
if ('%'==fmt[0] && '%'==fmt[1]) {
putc ('%', stream);
@@ -539,13 +539,14 @@ HDfprintf (FILE *stream, const char *fmt, ...)
switch (*s) {
case 'H':
if (sizeof(hsize_t)==sizeof(long)) {
- modifier = 'l';
+ strcpy (modifier, "l");
} else if (sizeof(hsize_t)==sizeof(long long)) {
- modifier = 'q';
+ strcpy (modifier, PRINTF_LL_WIDTH);
}
break;
default:
- modifier = *s;
+ modifier[0] = *s;
+ modifier[1] = '\0';
break;
}
s++;
@@ -565,7 +566,7 @@ HDfprintf (FILE *stream, const char *fmt, ...)
sprintf (template+strlen (template), ".%d", prec);
}
if (modifier) {
- sprintf (template+strlen (template), "%c", modifier);
+ sprintf (template+strlen (template), "%s", modifier);
}
sprintf (template+strlen (template), "%c", conv);
@@ -574,16 +575,16 @@ HDfprintf (FILE *stream, const char *fmt, ...)
switch (conv) {
case 'd':
case 'i':
- if ('h'==modifier) {
+ if (!strcmp (modifier, "h")) {
short x = va_arg (ap, short);
n = fprintf (stream, template, x);
- } else if (!modifier) {
+ } else if (!*modifier) {
int x = va_arg (ap, int);
n = fprintf (stream, template, x);
- } else if ('l'==modifier) {
+ } else if (!strcmp (modifier, "l")) {
long x = va_arg (ap, long);
n = fprintf (stream, template, x);
- } else if ('q'==modifier) {
+ } else {
long long x = va_arg (ap, long long);
n = fprintf (stream, template, x);
}
@@ -593,16 +594,16 @@ HDfprintf (FILE *stream, const char *fmt, ...)
case 'u':
case 'x':
case 'X':
- if ('h'==modifier) {
+ if (!strcmp (modifier, "h")) {
unsigned short x = va_arg (ap, unsigned short);
n = fprintf (stream, template, x);
- } else if (!modifier) {
+ } else if (!*modifier) {
unsigned int x = va_arg (ap, unsigned int);
n = fprintf (stream, template, x);
- } else if ('l'==modifier) {
+ } else if (!strcmp (modifier, "l")) {
unsigned long x = va_arg (ap, unsigned long);
n = fprintf (stream, template, x);
- } else if ('q'==modifier) {
+ } else {
unsigned long long x = va_arg (ap, unsigned long long);
n = fprintf (stream, template, x);
}
@@ -613,13 +614,13 @@ HDfprintf (FILE *stream, const char *fmt, ...)
case 'E':
case 'g':
case 'G':
- if ('h'==modifier) {
+ if (!strcmp (modifier, "h")) {
float x = va_arg (ap, float);
n = fprintf (stream, template, x);
- } else if (!modifier || 'l'==modifier) {
+ } else if (!*modifier || !strcmp (modifier, "l")) {
double x = va_arg (ap, double);
n = fprintf (stream, template, x);
- } else if ('q'==modifier) {
+ } else {
long double x = va_arg (ap, long double);
n = fprintf (stream, template, x);
}
diff --git a/src/H5config.h.in b/src/H5config.h.in
index 9bb277a..fbe2c73 100644
--- a/src/H5config.h.in
+++ b/src/H5config.h.in
@@ -31,6 +31,9 @@
/* Define if it's safe to use `long long' for hsize_t and hssize_t */
#undef HAVE_LARGE_HSIZET
+/* The width parameter for printf formats for type `long long', us. `ll' */
+#undef PRINTF_LL_WIDTH
+
/* The number of bytes in a double. */
#undef SIZEOF_DOUBLE