mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-01 16:28:09 +08:00
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-) Description: Generally speaking, this is the "signed->unsigned" change to selections. However, in the process of merging code back, things got stickier and stickier until I ended up doing a big "sync the two branches up" operation. So... I brought back all the "infrastructure" fixes from the development branch to the release branch (which I think were actually making some improvement in performance) as well as fixed several bugs which had been fixed in one branch, but not the other. I've also tagged the repository before making this checkin with the label "before_signed_unsigned_changes". Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel & fphdf5 FreeBSD 4.10 (sleipnir) w/threadsafe FreeBSD 4.10 (sleipnir) w/backward compatibility Solaris 2.7 (arabica) w/"purify options" Solaris 2.8 (sol) w/FORTRAN & C++ AIX 5.x (copper) w/parallel & FORTRAN IRIX64 6.5 (modi4) w/FORTRAN Linux 2.4 (heping) w/FORTRAN & C++ Misc. update:
153 lines
3.4 KiB
Bash
153 lines
3.4 KiB
Bash
# -*- shell-script -*-
|
|
#
|
|
# This file should be sourced into configure if the compiler is a DEC
|
|
# compiler. It is careful not to do anything if the compiler is not
|
|
# DEC; otherwise `cc_flags_set' is set to `yes'
|
|
#
|
|
|
|
# Get the compiler version unless it's already known.
|
|
#
|
|
# cc_vendor: The compiler vendor: DEC
|
|
# cc_version: Version number, like: V5.2-038
|
|
#
|
|
if test X = "X$cc_flags_set"; then
|
|
cc_vendor=DEC
|
|
cc_version="`$CC $CFLAGS -V 2>&1 |head -1`"
|
|
case "$cc_version" in
|
|
DEC*)
|
|
cc_version="`echo $cc_version |\
|
|
sed 's/.*DEC C \(V[0-9][-\.0-9]*\).*/\1/'`"
|
|
;;
|
|
Compaq*)
|
|
cc_version="`echo $cc_version |\
|
|
sed 's/.*Compaq C \(V[0-9][-\.0-9]*\).*/\1/'`"
|
|
;;
|
|
esac
|
|
|
|
if test X != "$gcc_version"; then
|
|
echo "compiler '$CC' is $cc_vendor-$cc_version"
|
|
else
|
|
cc_vendor=
|
|
fi
|
|
fi
|
|
|
|
# Warn about old compilers that don't work right.
|
|
case "$cc_vendor-$cc_version" in
|
|
DEC-V5.2-038)
|
|
cat <<EOF
|
|
**
|
|
** This compiler may generate incorrect code when optimizations are
|
|
** enabled. Please upgrade to a newer version (we're not sure which
|
|
** version actually works) before reporting bugs to the HDF5 team.
|
|
**
|
|
EOF
|
|
sleep 5
|
|
;;
|
|
esac
|
|
|
|
# Compiler flags
|
|
case "$cc_vendor-$cc_version" in
|
|
DEC-V5.*)
|
|
# Production
|
|
PROD_CFLAGS="-std -verbose -warnprotos -ieee -misalign -O4 -ansi_args -fp_reorder -readonly_strings -inline speed"
|
|
PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS"
|
|
|
|
# Debug
|
|
DEBUG_CFLAGS="-g -std -verbose -warnprotos -ieee -misalign"
|
|
DEBUG_CPPFLAGS=
|
|
|
|
# Profile
|
|
PROFILE_CFLAGS="-pg -std -verbose -warnprotos -ieee -misalign"
|
|
PROFILE_CPPFLAGS=
|
|
|
|
# Flags are set
|
|
cc_flags_set=yes
|
|
;;
|
|
|
|
DEC-V6.*)
|
|
# Production
|
|
PROD_CFLAGS="-c99 -verbose -warnprotos -ieee -misalign -O4 -fp_reorder -readonly_strings -inline speed"
|
|
PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS"
|
|
|
|
# Debug
|
|
DEBUG_CFLAGS="-g -c99 -verbose -warnprotos -ieee -misalign"
|
|
DEBUG_CPPFLAGS=
|
|
|
|
# Profile
|
|
PROFILE_CFLAGS="-pg -c99 -verbose -warnprotos -ieee -misalign"
|
|
PROFILE_CPPFLAGS=
|
|
|
|
# Flags are set
|
|
cc_flags_set=yes
|
|
;;
|
|
esac
|
|
|
|
# If no flags were set then clear the compiler vendor and version info.
|
|
if test X = "X$cc_flags_set"; then
|
|
cc_vendor=
|
|
cc_version=
|
|
fi
|
|
|
|
# The default Fortran 90 compiler
|
|
|
|
#
|
|
# HDF5 integers
|
|
#
|
|
# R_LARGE is the number of digits for the bigest integer supported.
|
|
# R_INTEGER is the number of digits in INTEGER
|
|
#
|
|
# (for the Digital UNIX architechture)
|
|
#
|
|
R_LARGE=18
|
|
R_INTEGER=9
|
|
HSIZE_T='SELECTED_INT_KIND(R_LARGE)'
|
|
HSSIZE_T='SELECTED_INT_KIND(R_LARGE)'
|
|
HID_T='SELECTED_INT_KIND(R_INTEGER)'
|
|
SIZE_T='SELECTED_INT_KIND(R_LARGE)'
|
|
OBJECT_NAMELEN_DEFAULT_F=-1
|
|
|
|
if test "X-" = "X-$F9X"; then
|
|
F9X=f90
|
|
fi
|
|
|
|
if test "X-" = "X-$f9x_flags_set"; then
|
|
F9XSUFFIXFLAG=""
|
|
FSEARCH_DIRS=""
|
|
FFLAGS="$FFLAGS -Olimit 2048 -std1"
|
|
DEBUG_FFLAGS="-Olimit 2048 -std1"
|
|
PROD_FFLAGS="-Olimit 2048 -std1"
|
|
PROFILE_FFLAGS="-Olimit 2048 -std1"
|
|
f9x_flags_set=yes
|
|
fi
|
|
|
|
# The default C++ compiler
|
|
|
|
if test -z "$CXX"; then
|
|
CXX=cxx
|
|
CXX_BASENAME=cxx
|
|
fi
|
|
|
|
|
|
case $CXX_BASENAME in
|
|
g++)
|
|
CXXFLAGS="$CXXFLAGS -Wsign-compare" #Only works for some versions
|
|
DEBUG_CXXFLAGS="-g -fverbose-asm"
|
|
DEBUG_CPPFLAGS=
|
|
PROD_CXXFLAGS="-O3 -fomit-frame-pointer"
|
|
PROD_CPPFLAGS=
|
|
PROFILE_CXXFLAGS="-pg"
|
|
PROFILE_CPPFLAGS=
|
|
;;
|
|
|
|
*)
|
|
CXXFLAGS="$CXXFLAGS -tlocal -D__USE_STD_IOSTREAM"
|
|
DEBUG_CXXFLAGS="-g"
|
|
DEBUG_CPPFLAGS=
|
|
PROD_CXXFLAGS="-O"
|
|
PROD_CPPFLAGS=
|
|
PROFILE_CXXFLAGS="-pg"
|
|
PROFILE_CPPFLAGS=
|
|
;;
|
|
esac
|
|
|