RUNSERIAL=${RUNSERIAL="env LDR_CNTRL=MAXDATA=0x20000000@DSA"}
kind of mess things up for the parallel HDF5 configure.
Changed it to
RUNSERIAL=${RUNSERIAL="env LDR_CNTRL=MAXDATA=0x20000000@DSA MP_PROCS=1 MP_TASKS_PER_NODE=1 poe"}
if --enable-parallel.
Also merge powerpc-ibm-aix5.x with ibm-aix by making powerpc-ibm-aix5.x to
source ibm-aix just like ibm-aix6.x. This is in preparation that all AIX
platforms will eventually just use ibm-aix directly.
Fixed a small problme in ibm-flags: some older xlc (e.g. v7.1) prints the
version information with a leading blank. So, accommodate this pattern by
removing the "^".
Tested: LLNL uP, 32/64bits, serial/parallel. (parallel has tests failed
but this change is mainily for configure issues.)
Also tested BP, 32/64bits but serial only.
Description: aix -q32 default to a memory limit that some HDF5 tests would
fail in malloc.
Solution:
Temporary hardset
RUNSERIAL=${RUNSERIAL="env LDR_CNTRL=MAXDATA=0x20000000@DSA"}
to bypass this problem until the test programs are fixed. Though -q64 binary
has a higher default memory limit and does not need this patch, it is applied
the same for the sake of simplicity since it is a temporary fix.
Tested:
in uP, both -q32 and -q64 modes. No h5committest since this applies to the
AIX platform only.
Improve configure's large-file support control.
Description:
Modified configure to now attempt to add defines necessary for
supporting largefiles on all systems, instead of solely on linux. This
is in response to user requests to enable largefile support on Solaris
by default, as well as to give extra control on AIX (instead of just
jamming the necessary flag into the config files).
The old --enable-linux-lfs flag has been removed in favor of the
--enable-largefile flag (enabled by default), which can be used on all
platforms.
On systems where large files cannot be supported in this manner,
configure will report as such.
Tested:
h5committest
AIX (NCSA's blue_print machine)
duty, liberty, and linew.
Added the xlc-* and mpcc_r-* BASENAME patterns to be recognized as IBM
compilers so that the ibm compiler options can be added properly.
This allows non-system-default compiler command names (e.g. xlc-m.n.k.l)
be recognized.
(need to figure out a better way to recognize it is an IBM compiler
and its version information.)
Tested: LLNL AIX machine.
-qmoddir=. because -qmoddir defaults to current directory already.
-static because it is not mentioned in "man xlf". Don't know it was a typo
or just an obsoleted option.
Removing both of them produced no ill or visible effects.
Tested: Up of LLNL
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
xlf90 and mpxlf90_r respectively. The fortran 90 compilers support
free format source files. This allows the removal of -k so that
the default compiler command is cleaner.
Tested: AIX Up at LLNL.
(Note: mpxlf90_r does not work but this could have been an undetected
old problem.)
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).
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.
Change AIX to use C99 standard by default.
Also removed -DSTDC as its need is unknown.
Also added a line to identify this is for IBM AIX platforms.
Tested:
Copper.
Bug fix.
Description:
C++ testhdf5 failed when it tried to inspect the size of a file
via the HDstat call. The reason was that the CFLAGS has -D_LARGE_FILES
hardset in it while the CXXFLAGS does not. So, C is using an off_t
that is 8 bytes while C++ is using off_t as 4 bytes. C is using
a version of 64bits stat/off_t/etc while C++ uses the 32 bits version.
Thus a failure.
Solution:
Added -D_LARGE_FILES to $CXXFLAGES so that both C and C++ are using
the same version of stat/off_t/etc.
Platforms tested:
Tested in Copper only, both 32 and 64 bits since the changes affected
the AIX platform only.
Purpose:
Bug fix
Description:
The Daily Test errors were due to H5_CFLAGS not being included when
configure tested the sizes of some values.
Rolled back the offending changes.
Solution:
There is a "correct" solution to this problem, which is to ensure that
the H5_CFLAGS are included in autoconf's tests.
This rollback is only temporary until the "real" fix can be applied.
Platforms tested:
copper (problem only in aix config file)
Purpose:
H5CC feature
Description:
Made H5_CFLAGS change to several more configuration files.
Solution:
Moved nonessential flags from CFLAGS to H5_CFLAGS for several more
platforms. If my guesses about which flags were nonessential were
wrong, we'll have Daily Test errors.
Platforms tested:
mir, cray, copper, juniper (OS X)
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.
Code cleanup
Description:
Removed Fortran type sizes from config/* files.
Solution:
These lines weren't doing anything anymore; they've been replaced by automatic
type generation. This is just housekeeping to remove them from
the config/* files.
Platforms tested:
mir, sol, modi4
New feature.
Description:
Added the time command to the make check target to report time usage
of the execute of each test and test scripts. This gives us some idea
how long each test takes and some vague idea it is compute bound or
not.
powerpc-ibm-aix5.x:
Change $RUNPARALLEL default setting to allow it being invoked by the
time command.
Platforms tested:
h5committested.
Purpose:
collective chunk IO support for AIX 5.x
Description:
NCSA just updated its poe version, this new version will support
MPI complicated derived data type.
So update our configuration file for AIX 5.x.
Solution:
Platforms tested:
copper, no need for others since only AIX 5.x will be affected.
Misc. update:
Description:
Many warnings about duplicate symbols for various members in the std.
Solution:
Temporarily added -qweaksymbol to suppress linker messages warning
of duplicate symbols since these warnings are harmless.
Note from pSeries and AIX Information Center:
When compiling C++ programs containing extern inline functions,
you can use the -qweaksymbol compiler option to suppress linker
messages warning of duplicate symbols.
Hoping that a better solution is suggested or the problem will be
handled by the compiler in the future.
Platforms tested:
AIX 5.1 (copper)
Hard code IBM platform so that the irregular collective IO won't call
MPI derived data type.
Description:
IBM MPI-IO has a bug for MPI derived data type.
Solution:
Platforms tested:
copper(AIX,mpcc_r) and heping(Linux, mpich)
Misc. update:
Automake version upgrade
Description:
Upgraded automake version from 1.6.2 to 1.9.5.
Changed bin/reconfigure script to use automake 1.9.5.
Changed configure.in and Makefiles to use new FCFLAGS and FC variables
instead of FFLAGS and F9X.
Automake and configure should now do the lion's share of the work
supporting Fortran 9X; macros in acsite.m4 are now mostly unused (will
be cleaned later).
Altered how configure handles pmake; now root-level Makefile.in is
processed by bin/reconfigure to have a .MAKEFLAGS target, since
automake no longer allows us to define unused variables.
Configure now always checks for C++ compiler even if it is not
used, since automake thinks this is the Right Thing To Do and
will break otherwise.
Platforms tested:
Sol, copper, heping, mir, sleipnir, eirene, pommier, kelgia, modi4.
Bug fix
Description:
Removed the cache values of sizeof signed and unsigned int_fast8_t
and int_fast16_t since the vendor changes them often.
Platforms tested:
Tested in Copper only since it affected it only.
Misc. update:
Fix configure bug that appears on SDSC DataStar.
Description:
Two cached "sizeof"s in ./config/powerpc-ibm-aix5.x cause builds
on SDSC Datastar to choke.
Solution:
Commented out the offending "sizeof"s. Included comments indicating
the reason for the change.
Platforms tested:
copper
Misc. update:
n/a
Code cleanup/bug fix
Description:
Fix configuration files to allow 64-bit compilation of the library with
a 64-bit version of zlib.
Solution:
Moved important compiler flags settings from CC macro to CFLAGS macro.
Instead of setting CC (F9X, CXX) environment variable for compiling for 64-bit
code, users should just set the CFLAGS (FFLAGS, CXXFLAGS) to -q64.
Updated INSTALL file to reflect this change.
Platforms tested:
IBM p690 (copper) w/parallel, FORTRAN, C++, srcdir.
Platforms specific - h5committest does not apply.
Bug fix
Description:
Update debugging and profiling flags to include more information.
Platforms tested:
IBM p690 (copper)
too obscure for h5committest
Bug Fix
Description:
The FFLAGS, CXXFLAGS, and CPPFLAGS variables weren't carrying
user-defined values into the Makefiles.
Solution:
Changed the flags from FOO="..." to FOO="$FOO ..."
Platforms tested:
Copper
Verbena
Arabica
Misc. update:
Bug Fix
Description:
In a fit of what can only be described as brain-damagedness, on blue,
frost, etc. (AIX, really), when you include the zlib.h header file
and are specifying that the compiler accept ANSI C, zlib.h undefines
the "const" keyword if you don't have the variable STDC
defined...*boggle*.
Solution:
Included a -DSTDC as a commandline flag for the compiler.
Platforms tested:
Snow (AIX 5.0)
Only affects AIX machines, so no h5committest needed.
Misc. update:
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:
Improvement
Description:
RUNPARALLEL is setup with default value when --enable-parallel but only if
CC is not set.
Solution:
set RUNPARALLEL to default value of using poe when --enable-parallel
or when an MPI compiler (e.g. mpcc_r) is used.
Platforms tested:
Copper for both 32 and 64 bit, serial and parallel.
(32bit parallel had a hang problem in configure which is a different but
known problem.)
Note that one still need to setenv AR "ar -X64" for 64bit configure.
Misc. update:
Bug Fix
Description:
The compression stuff includes the "zlib.h" header file. This
file on the SP machine was including another file which would
#define const as nothing if the compiler wasn't a Standard C
compiler.
Solution:
Included a flag to make the compiler into an ANSI compiler.
Platforms tested:
Blue (Only affects powerPC computers)
Misc. update:
Bug fix
Description:
test/dtypes failed badly when -O is used. Trying to recompile test/*
code without -O did not eliminate the errors. So, the failure is
deep in the hdf5 library.
Solution:
For now, removed '-O' from $PROD_CFLAGS so that enable-production will use
no optimization. Need to find out what exactly trigger the errors.
Platforms tested:
Did not do h5committest because this is an AIX configure change only.
Tested it in Copper. Need to test it on other offsite machines.
Misc. update:
Updated release_docs/RELEASE.
Bug fix
Description:
The $RUNPARALLEL is set even when parallel mode is not used.
Then it is used to launch some parallel natured test (e.g. example/ph5example)
which is not compiled to be so. That created some unnecessary problem
in some situation (e.g., Copper cannot "poe a.out" from an AFS space
because of the missing AFS token system bug.
Solution:
Setup RUNPARALLEL only when parallel mode is enabled.
Platforms tested:
Only tested in Copper since the change applies to IBM machines only.
(note that v1.4 will fail by default due to a problem when the default
production mode is used. But that is an error not related to this config file)
Misc. update:
bug fix, features.
Description:
removed the cache of sizeof_long since it varies between 32 and 64 bits.
Set xlc and mpcc_r as the default compiler for serial and parallel modes.
Added -D_LARGE_FILES by default to support large file size.
Added gcc gnu-flags when gcc compiler is used (not working yet.)
Platforms tested:
Tested in Copper only since that is the only AIX machine on site.
Porting to AIX 5.x
Description:
These have been tested out in v1.4. Folding them in here.
aclocal.m4:
Snow's names were not included in the special hack.
Added its names in.
Removed the trailing * in pacific.llnl.gov too.
configure.in:
fortran/configure.in:
Added a case to group all AIX 5.* versions as aix5.x. This allows
them to share one common config/*aix5.x file.
configure:
fortran/configure:
Derived from configure.in (done in eirene).
config/powerpc-ibm-aix4.x:
Added a comment explaining why not to cache sizeof size_t and off_t
fortran/config/powerpc-ibm-aix4.x:
Turned of cache of sizeof size_t and off_t because they are depedent
on compiler options.
config/powerpc-ibm-aix5.x:
fortran/config/powerpc-ibm-aix5.x:
New config file for AIX 5.X
Platforms tests:
LLNL Blue, Frost, Snow, both serial and parallel.