PathScale was mistaken as the Gcc compiler such that gcc flags were added
to it but PathScale did not honor many of them. (e.g. -Wvariadic-macros,
-Wold-style-definition, -Winit-self, -Wvariadic-macros, -Wmissing-include-dirs,
-Winit-self, -Wc++-compat)
Solution:
Added a pre-condition to detect pathScale compiler before Gcc is
accepted.
Tested:
Sandia Glory where PathScale compiler is available.
For gcc v4.3 and v4.4, with production mode,
if -O3 is used, H5Tinit.c would fail to compile. Actually bad H5Tinit.c is
produced.
If -O (same as -O1) is used, H5Tinit.c compiled okay but test/dt_arith
would fail with:
Testing hard normalized long double -> signed char conversions time: comm
and terminated abnormally
When -O0 (no optimizatio) is used, H5Tinit.c compilete okay and all tests
passed.
Solution:
Changed the config/gnu-flags to use -O0 for gcc v4.3 and 4.4 for production
flags for now so that build and tests would work. Still need to investigate
if the error is due to Gcc optimization bug or our code errors.
Tested:
In liberty with gcc43 and gcc44. Also, tested in jam and smirom with
older versions of gcc.
There are no gcc 43 or 44 compilers installed in other THG machines that
I know.
Add base support for extensible array "data blocks" to code, tests and
h5debug.
Tested on:
Mac OS X/32 10.5.4 (amazon) in debug mode
Mac OS X/32 10.5.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Update the gcc flags for version 4.3
Clean up warnings
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.5.3 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
Comment out the use of the "-Wpadded" flag, it's generating far too many
warnings that are impossible to correct and probably making it harder to see
other warnings that are more important.
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
H5_CFLAGS change
Description:
Converted a few platforms to use H5_CFLAGS to "test the waters"
Solution:
Modified a few config/* files to use H5_CFLAGS for non-essential
flags.
Platforms tested:
mir, heping
Removed -march flag
Description:
The -march optimization flag is bad in some circumstances
Solution:
Prevented HDF5 from adding the -march archicture-specific optimization
flag, so that users could have one version of HDF5 used by
several different machines.
Platforms tested:
heping (one of the few platforms that affected by this small change)
Code cleanup/update
Description:
Update compiler flags for gcc 4.1.x & start cleaning up some of the C++
compatibility
Platforms tested:
FreeBSD 4.11 (sleipnir) w/gcc 4.1 and/or g++
Bug fix
Description:
Tone down the optimization flags for gcc 4.2.x in the same way as we
do for all the other gcc 3/4 builds, to avoid datatype conversion issues.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/gcc 4.2
Not tested by h5committest
Description:
Add source code copyright notice; comment symbols vary by type of file.
Platforms tested:
No changes that should cause any problems. Nonetheless, the tree will
be checked out fresh and tests run immediately post-commit.
Update flags
Description:
Update gcc compiler flags to support the early gcc 4.0 snapshots available
on sleipnir
Platforms tested:
FreeBSD 4.10 (sleipnir) w/gcc 4.0 snapshot
Too minor to require h5committest
Code cleanup/bug fix
Description:
Remove the undocumented "$NOFP" shell variable which would allow production
builds without removing the stack frame. This was cascading between C and
FORTRAN builds and causing problems.
Solution:
Hard-code removing the stack frame for now. Users would have needed to
read the configure scripts anyway, so there's not really much benefit to the
extra knob. Users who need this functionality (production builds with stack
frames) are debugging probably, so they will need to modify the script and
build their own version of the library now.
Platforms tested:
Linux 2.4 (verbena)
Too minor to require h5committest
Bug fix
Description:
It uses the value of $ARCH as a gcc option but the linux clusters
at NCSA define $ARCH as environment variable with values that are
not a valid compiler option. That caused the configure to fail
because it was not able to compile at all.
Solution:
Change ARCH to lower case $arch (convention dictates environment
variables are upper cases.) Also preset $arch to null and do not
honor any pass it values.
Platforms tested:
Attempted to run h5committest but sol was failing due to /tmp
filled. Copper and verbena passed. Also passed in TG-NCSA.
Misc. update:
Code cleanup & addition
Description:
Add new warnings for gcc 3.4.x
Re-work production mode compile flags to work better.
Platforms tested:
FreeBSD 4.10 (sleipnir)
h5committest
Bug fix
Description:
Fix build on sparc64 platform for FreeBSD by modifying the config/gnu-flags
to not insert '-march=i686' on non-Intel platforms. (This change allows HDF5
to run correctly on all five of the main FreeBSD platforms... :-)
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest not run since it's a FreeBSD-specific fix.
improvement.
Description:
Created an entry for 2.96 and added -Wno-long-long to the CFLAGS
to suppress the thousands of 'long long' warnings because we are
using it and we know it is not in the C89 standard.
Platforms tested:
Only in verbena.
Misc. update:
Bug fix
Description:
Update gcc 3.4 flags to reduce optimization level to the same settings
as for gcc 3.0-3.3 due to code generation bugs at higher optimization levels.
Platforms tested:
FreeBSD 4.9 (sleipnir)
Bug fix
Description:
Reduce optimization level from -O3 to -O for gcc 3.*, since it seems to
be generating bad code for the atomic type conversions now...
Platforms tested:
FreeBSD 4.9 (sleipnir)
Linux 2.4 (eirene, verbena)
h5committest not necessary, this is a GNU-only change.
Update
Description:
Revamped the configuration system. The configurations for the Fortran
and C++ libraries are no longer separate from the "main"
configuration system. This involved removing the "configure*" and
"aclocal.m4" files from the fortran/ and c++/ subdirectories. Also
merging settings in the config/ subdirectories into the main config/
subdirectory.
Fortran header files had to be modified a little for Linux. It was
checking if it was a Linux machine by some #defines, however with the
-std=c99 switch, these defines weren't there. I added a check for
some other ones which should be there whether the -std=c99 switch is
used or not.
Platforms tested:
Verbena (Fortran & C++)
Sol (Fortran & C++)
Copper (Fortran & C++)
Modi4 (Parallel, Fortran, & C++)
Misc. update:
Code cleanup
Description:
Remove special optimization and debugging flags for obsolete versions of
gcc.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest not needed.
Initial pass for gcc3.3 support
Description:
Added section for gcc 3.3+ and cleaned up the gcc 3.2+ section a little.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/gcc 3.3 snapshot
Triple check unneeded.
Bug fix.
Description:
-O2 -finline-functions still causes production builds on eirene to fail.
Solution:
Downgrade optimization on gcc 2.95.x (x<3) to -O -finline-functions
Platforms tested:
Linux 2.2 (eirene)
Bug fix w/gcc 2.95.x where x<3
Description:
-O3 optimization level causes problems for gcc 2.95.2 on eirene
Solution:
Only enable -O3 if using gcc 2.95.x (where x>=3) or gcc 3
Otherwise, use older setting of -O2 -finline-functions
Platforms tested:
FreeBSD 4.7 (sleipnir)
Linux 2.2 (eirene)
Code cleanup
Description:
Clean up miscellaneous warnings which have crept into the code.
Fix "_POSIX_C_SOURCE not defined" warning on FreeBSD.
Adjust gcc compiler flags to be more concise for production mode.
Refactor the H5O code so that there is a stronger boundary between code
in the H5O package and code in the library which just calls H5O routines.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir) serial & parallel and gcc 2.95.4 & gcc 3.2.2
Misc. update:
Update MANIFEST if you add or remove any file.
Cleanup
Description:
Cleanup gcc cases to be more general about gcc 3.x, now that gcc 3.2 has
been released.
Platforms tested:
FreeBSD 4.6 (sleipnir) - not a significant enough change to worry about
multi-platform testing.
Bug Fix
Description:
Placed quotes around strings which could be empty so that the shell
script doesn't complain to us about "too many arguments for test"
problems.
Platforms tested:
Linux
Configure cleanup
Description:
Neaten up file a bit more...
Platforms tested:
Linux 2.2 (eirene) with gcc 2.95.2 and Solaris 2.6 (baldric) with gcc 2.8.1
Configure cleanup
Description:
Fine-tune the gcc version checks a bit more...
Platforms tested:
FreeBSD 4.5 (sleipnir) with gcc 2.95.3 and gcc 3.1 (prerelease) and
Solaris 2.6 (baldric) with gcc 2.8.1
Configuration improvements
Description:
Added more warning flags to gcc builds, especially with gcc 3+. Also, added
the -Wno-long-long flag to gcc builds to turn off the annoying "long long"
warnings.
Platforms tested:
FreeBSD 4.5 (sleipnir) with gcc 2.95.3 and gcc 3.1 (prerelease)
Purpose:
Feature Addition
Description:
Added support for gcc 3.0.x. GCC 3.0.x supports the C99
specification. The "-std=c99" gets rid of those annoying "warning
long long not supported by ANSI standard" messages.
Platforms tested:
Linux and gcc 3.0.1
Bug fix... (sorta)
Description:
Added --enable-linux-lfs configure flag to have better control over whether
the enable large file support on Linux machines. Also removed the
-malign-double flag for gcc since it can potentially cause errors which
are difficult to detect.
Platforms tested:
Linix 2.2 & 2.4 (eirene and dangermouse)
Code cleanup
Description:
Get ready for adding C99 extensions sometime in the future.
Solution:
Added some comments to the gcc flags..
Platforms tested:
Linux (eirene), FreeBSD 4.3 (hawkwind)
Better Mouse Trap^W^WBug Fix
Description:
Instead of having the large file support stuff be in the
config/gnu-flags directory, I added it to the configure.in file so
that it first checks for the syscall ``getdents64()''. If it finds
it, then it removes the ``-malign-double'' flag if the GCC compiler
is 2.95.x since this flag doesn't play well with the LFS stuff.
Solution:
Added test for getdents64(), if found it removes the -malign-double
flag if the compiler is 2.95.x. This is done in the configure.in
file. The gnu-flags file is returned to normal. A new field is added
to the H5config.h.in file because of the getdents64 check.
Platforms tested:
Linux
Bug Fix
Description:
Linux does actually support 64 bit files (those greater than 2GB),
you just have to defined a bunch of, seemingly meaningless, macros in
order to coax glibc to work with you. 64 bit file support is in the
2.3 and above kernels by default. For lower, well...upgrade or
something. The one weird thing, the "-mdouble-align" flag was causing
hdf5 to barf when the large file support was compiled in there. It
has something to do with the structures and their alignment or
something. Very weird.
Solution:
Added a test to see if we're on a Linux boxen with kernel >2.3 and if
so then specify the flags for LFS support. Removed the -mdouble-align
flag if we do use LFS support since it causes damage.
Platforms tested:
Linux (Dangermouse)
Code cleaning
Description:
Moved all gcc compiler flags into the config/gnu-flags file and re-added
the warning flags removed during the beta testing.
Platforms tested:
FreeBSD 4.2 (hawkwind)
Config cleanup
Description:
In production environments, the optimization flag for gcc was set to
-O6, which has some code-generation problems in certain environments.
Solution:
Turned optimizations down to -O2, which is still pretty bleeding edge.
Platforms tested:
FreeBSD 4.2 (hawkwind)