Configure Cleanup
Description:
Make all AM_CFLAGS visible in CFLAGS during configure so all checks
have full visibility of any set flags.
Tested:
h5committest
configure cleanup
Description
1. Removed check that disables shared libraries when pgcc is used. Apparently
they previously did not work with libtool 1.5.14 and on mir, neither of
which is in use anymore. Testing on jam and amani appear fine, so this
check is unnecessary.
2. Removed check that disables shared C++ libraries when -xarch is used to
enable 64 bit mode. We now use m64 flag to build 64 bit binaries, so
we shouldn't explicitly disable shared C++ libraries if -xarch is
discovered.
3. Removed old configure output summary section from configure.in, since
we now use the libhdf5.settings file.
4. Updated powerpc-ibm-aix5.x config file to once again put c99 flag into
H5_CFLAGS (and thus NOT get into h5cc), as decided in our dev meeting.
Tested:
h5committest
full build with pgcc on jam / amani
Platforms tested: jam (trivial change)
Note: Most of the Fortran compilers create module files with "mod" extension.
In the past, I believe, there were systems (Cray?) that used different
extensions. We should add those to the current fix when we find them.
Configure / Config File Fixes
Description:
1. Made AM_CPPFLAGS assignments in configure a bit safer. (i.e., check to
ensure include paths exist before adding them to AM_CPPFLAGS).
2. Change AIX config file to add -D_LARGE_FILES into AM_CXXFLAGS instead
of H5_CXXFLAGS (same with *_CFLAGS). This will propagate it into
h5c++, where it is needed to compile correctly.
3. Added missing line containing AM_CFLAGS to configure output summary.
Tested:
h5committest, and uP (AIX machine, via Albert).
Configure Fix
Description:
uP (AIX Machine) was failing because configure needs to see -k flag in
FCFLAGS for some checks to behave as intended. Since the config files
were switched to passing all flags into H5_FCCFLAGS, this broke this
behavior.
To allow configure to see this again, FCFLAGS and all other user flags
are saved before doing anything, and restored at the end of configure,
so if needed we can set these values in configure and/or the config/
files without (permanently) overriding or changing anything a user sets.
Also modified the powerpc-ibm-aix5.x config file to once again put -k
into FCFLAGS in addition to H5_FCFLAGS (the former of which will be
restored after configure completes the checks).
Tested:
h5committest (jam and amani finished, linew still running, though
I wanted to get this in for daily tests since it needs to be run on
uP for final verification).
Couple quick configure cleanups
Description:
- Made a few AM_LDFLAGS assignments a bit safer.
- Regenerated a couple Makefile.in's via bin/reconfigure to address
some typo-fixes that didn't propagate in my last check-in.
Tested:
- h5committest
- Also, I suspect this fix will address a failure on Sandia's clogin2
machine, but Albert currently has no password to gain access, so I have
only minimal logs of the failure and no way to test it there. I'll
just let the automated tests there determine if indeed I'm right.
CFLAGS overhaul
Description:
Modified the way configure handles CFLAGS.
(note: all changes also apply to FCFLAGS, CXXFLAGS, CPPFLAGS, and LDFLAGS).
1. The configure process will now always preserve a user's CFLAGS
environment variable setup. Any additional flags necessary for compilation
added at configure time will be passed into the Makefiles as AM_CFLAGS,
which is an automake construct to be used in addition to CFLAGS.
This will allow a user to have the final say, as CFLAGS will always appear
later in the compile line than AM_CFLAGS. Additionally, setting CFLAGS
during make will no longer completely erase all flags set by configure,
since they're maintained in AM_CFLAGS.
2. Additionally, where possible, flags previously being assigned directly
into CFLAGS (and thus propagating into h5cc) have now been redirected into
H5_CFLAGS, so they're used ONLY for compiling hdf5, and not embedded into
the h5cc wrapper script as well.
*Note that H5_CFLAGS ultimately is assigned into AM_CFLAGS for use in the
Makefiles. Complete description of changes and build process will be
included in a Configure Document that Elena and I are working on.
3. Removed unsupported config files. This includes:
config/dec-osf*
config/hpux11.00
config/irix5.x
config/powerpc-ibm-aix4.x
config/rs6000-ibm-aix5.x
config/unicos*
4. Modified configure summary to display additional values. Specifically,
appropriate AM_* variables are being shown, as well as H5_FCFLAGS and
H5_CXXFLAGS, which were for some reason not already present.
Tested:
- H5committest
- Tested on all THG / NCSA machines, using several combinations of the more
prominent configure options (c++, fortran, szip, threadsafe, parallel,
et cetera). (Thanks to Quincey for rysnc testing setup!)
- With regards to new automated testing, anything *necessary* for
compilation will be caught by the daily tests as it stands now. (i.e.,
if LDFLAGS is not properly set when szip is used, linking will fail).
Additionally, with regards to which flags get into h5cc, if any
*necessary* flags have been improperly removed, then daily tests should
fail during make installcheck. Additional machine-specific desired
behaviors and/or checks may have to be set up separately within the
daily tests, so this is something to work on.
Bring changes from file free space branch back to the trunk. *yay!*
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
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 debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.5.8 (amazon) in debug mode
Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Configure Fix
Description:
Modified configure to set FC and CXX to "no" when fortran and c++ are
not being compiled, respectively. This will prevent configure from running
some checks on these compilers when they are not being used.
This fixes a problem that was occuring when FC and/or CXX are set to
a nonexistant or invalid compiler. Even if the languages were disabled,
a libtool test would fail, thus preventing libtool from properly linking
any libraries, yet configure would not flag an error message due to this
because the languages were disabled.
Tested:
- h5committest (jam, smirom, linew)
- manually eyeballed configure output and logfile.
Add new tests (tcheck_version, testcheck_version.sh) to verify H5check_version()
does issue warnings and abort accordingly.
Tests:
H5committed tested plus jam serial tested.
Stage 2 implementation of embedded library information feature.
H5.c: added code to print the embedded library information when there is
a library versions mis-match occurs. This ensures the library information
string is included in the executable.
Also modifies the code so that the Library mismatch warning string is
included only once in the executable.
H5private.h:
Added a global reference to the libinfo string variable to prepare
for possible stage 3 implementation of a public API.
test/testlibinfo.sh.in:
A new test added to verify the library information is indeed included
in the executables.
configure.in:
configure:
Added entry to auto-generate test/testlibinfo.sh.
H5detect.c:
Modified the libhdf5settings generating code to allow it to insert the
strings to a file other than stdout. This maybe needed in stage 3
implementation.
MANIFEST:
updated with the newly added file of testlibinfo.sh.in.
Tested:
h5committest passed. Additional tests:
jam serial; jam --disable-embedded-libinfo; jam --disable-shared. All passed.
Add warning to configure
Description:
Patched up the configure script to issue a warning when the user
has supplied the --enable-static-exec flag on a system that libtool
indicates does not support the -static linker flag.
Tested:
jam, smirom, linew, liberty.
configure.in. The Pathscale compiler on Sandia's Linux machine misinterprets the values of
unsigned long as negative during the conversion to float, when the first bit of unsigned long
is on.
Tested on jam. Need to test it on Sandia's machine.
Updating autotools
Description:
Installed new autotools and used them to reconfigure HDF5.
- Automake upgraded to 1.11
- Autoconf upgraded to 2.64
- bin/reconfigure script edited to use new versions (on jam), and
run to generate new configure script and Makefile.in's.
- configure.in script edited to add "_cv_" to all AC_CACHE_VAL strings
(in order to comply with new autoconf standard).
Tested:
Tested on machines jam, smirom, liberty, linew.
Tested w/ features c++, fortran, parallel.
Tested w/ compilers gcc, pgcc, icc.
Further testing via Daily Tests should catch any other outliers. Upon
passing DT's, I'll propogate the new tools into 1.8, hdf4, et cetera.
Break out the configure check for fseeko & ftello from lseek64/fseek64/
ftruncate64, since the check for the latter routines is not a valid check for
the former routines.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) 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 debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.5.7 (amazon) in debug mode
Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Bring r16846 from revise_chunks branch back to trunk:
Fix broken (for how long?) H5_ASSIGN_OVERFLOW macro to actually detect
overflows during assignments, along with several errors it [now] detected.
Cleaned up a fix minor warnings and/or pieces of code also.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
(h5committest not needed - multi-platform test performed on branch)
Embed the content of libhdf5.settings into the hdf5 executables so that an
"orphaned" executables can display (via the Unix strings command, for example)
the library settings used to build the executables.
This is a prototype implementation. Much improvement is needed.
configure.in:
Added the --disable-embedded-libinfo option to disable this feature.
configure:
src/H5config.h.in:
Generated by autotools like automake.
src/H5detect.c:
Implement insert_libhdf5_settings() to insert the contents of
libhdf5.settings into the library as an extern string variable so that it
is included in all HDF5 executable. Much improvement is needed.
fortran/src/Makefile.in:
Auto-generated by bin/reconfigure. (i.e., I did make any changes to cause
its direct regeneration).
Tested:
Jam serial, using default and --disable-embedded-libinfo, configure options.
Bug Fix
Description:
Removing the code from configure which strips the '-g' flag from CFLAGS
when in production mode. The current default CFLAGS in production mode
does not include '-g', as intended, but we should allow users to
override this and enable '-g' by setting the CFLAGS environment variable
if desired. Note that this applies to FCFLAGS and CXXFLAGS as well.
Tested:
kagiso, linew, liberty
the way h5ls prints types, it starts searching for NATIVE types first. One solution would be h5ls not to detect these native types, using for example the same print datatype function that h5dump does, that would make the output look the same on all platforms ("32-bit little-endian integer" would be printed instead). Drawback, this "native" information would not be available. Other solution is to have not one but 2 expected outputs and make the shell script detect the endianess and compare with one output or other
tested: h5committest
Bring r16305 back from revise_chunks branch:
Add detection of C99 "designated initializers" to configure script and
use new H5_HAVE_C99_DESIGNATED_INITIALIZER macro to conditionally compile
default layout variables in src/H5Pdcpl.c
Also, minor code cleanups, etc.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
(Other platforms tested on branch)
Bug Fix
Description:
Resolved issues with broken sanity checks that were failing when the 'b2'
debugging package was enabled (v2 b-tree debugging):
- Fixed outdated assertions that would not compile. They now compile
and function correctly.
- Removed too far outdated assertions that would require too much
unnecessary refactoring of code in order to satisfy their
initial purpose.
- Re-enabled b2 debugging package when "--enable-debug=all" is
specified on the configure line.
Tested:
jam, smirom, linew