* Updated source file copyright headers to remove "Copyright by the Board of Trustees
of the University of Illinois", which is kept in the top-level COPYING file.
* Fix typos found in the rest of the hdf5 code-base
* Typo in tool.cmake
* Revert "Typo in tool.cmake"
This reverts commit 06b8403d99.
* Fix clang-format styling
* Fixed -Wreserved-id-macro warnings from header include guards
* Removed all __int64 and LL suffix stuff now that C99 is minimum requirement
* Rename `H5FD_CTL__` to `H5FD_CTL_` to fix -Wreserved-id-macro warnings
Double underscore is reserved in C++ and this public header should be C++ compatible.
* Never define __STDC_FORMAT_MACROS anymore
Defining it causes a -Wreserved-id-macro.
Happily, according to the C++11 standard:
"The macros defined by <stdint> are provided unconditionally. In particular, the symbols __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS (mentioned in C99 footnotes 219, 220, and 222) play no role in C++."
https://cplusplus.github.io/LWG/issue984
So looks like it's not necessary to define it with reasonably new toolchains.
* Fixed some -Wunused-macros warnings, removed dead code
* Fixed all -Wdouble-promotion warnings in C++ files
* Fixed remaining -Wsuggest-destructor-override warnings
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Promote some GCC warnings back to errors and deal with build breakage.
I tested configuring and building with GCC 8.3.0 with
`.../configure --prefix=$HOME/wrk/install/manydsets --enable-build-mode=production --enable-symbols=-gdwarf-4 --enable-warnings-as-errors --enable-java --enable-hl --enable-fortran --enable-cxx --enable-mirror-vfd --enable-ros3-vfd --enable-direct-vfd`
and with the same options but `--enable-build-mode=debug`.
* Promote -Wrestrict to -Werror=restrict to help catch overlapping
arguments to strcpy, memcpy, et cetera, at compile time.
* NFCI: sort lines.
* Committing clang-format changes
* NFCI: remove whitespace at EOL.
* Re-use temporary variable `shared`.
* Remove merge oopsie.
* Mention that no op codes are understood per review comment.
* Change this back to the develop branch's way, since this change isn't
integral to the PR.
* Committing clang-format changes
* NFCI: reduce differences with `develop` branch in the hope that that
also kicks off CI.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
* Modify temporary rpath for testing in java example scripts.
* Update URL in source file Copyright headers for web copy of COPYING
file - files not in src or test.
* commit '54957d37f5aa73912763dbb6e308555e863c43f4':
Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes.
Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh.
Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1
Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
Description: The Fortran compiler flags were all set to "-O". They should be
different setting for different situations. E.g, "-g" for debug and
"-pg" for profile, etc.
Fix: set them to appropriate different values.
Tested: in Remote ADA AIX machines using 3 different settings:
configure --enable-fortran --enable-cxx # default to --disable-production
configure --enable-fortran --enable-cxx --enable-production
configure --enable-fortran --enable-cxx --disable-production
Added code to display the version information of XL fortran and C++ compiler
version information. (This is just a quick fix for the AIX XL compilers.
The overall algorithm of compilers version information needs an overhaul.)
Tested: ADA machine. (No committest because the changes applied to AIX XL
compilers only.)
Description: removed the temporary patch of
RUNSERIAL=${RUNSERIAL="env LDR_CNTRL=MAXDATA=0x20000000@DSA"}
and similaryly for RUNPARALLEL since the h5repack test failure
was fixed and this patch is no longer needed. (IBM also advices
not to hardset MAXDATA if possible.)
Tested: NASA G-ADA AIX machine, both 32 and 64 bits modes.
(No parallel test because not able to build or run MPI executables yet.)
Purpose:
Remove H5_MPI_SPECIAL_COLLECTIVE_IO_WORKS and
H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS #defines from source.
Description:
Two advanced parallel functionalities, special collective IO and
complex derived datatypes, are not supported by older
implementations of mpi, and thus our code limits the use of these
features with #ifdefs and has checks in configure to set them (or
not). Unfortunately, configure can't actually run a parallel check
to see if these features are working (nor not) so it resorts to
looking in the config files where they are explicity enabled or
disabled based on versions of mpi, sytems being built on, or for
no documented reason at all (i.e. just set to on or off as some
'default'). Overriding these settings is easy if need be, provided
it is known that it needs to be done to get improved performance,
and oftentimes it is not.
Most new MPI implementations successfully handle the functionality
requested when these #defines are set, and many of the "turn these
features off" cases in the config files are for old (> 5 years)
versions of MPI and retired systems (such as NCSA's tungsten).
Therefore, the decision has been made to remove the support for
these old versions of MPI and systems that cannot handle these
behaviors. The #ifdefs and supporting setup in the config/ files
and configure script has been removed, and the code executed when
these options were not set removed from the source.
In passing, this commit also cleans up some whitespace issues in
both t_mpi.c and H5Dmpio.c. Furthermore, in t_mpi.c, the special
collective IO test was not getting regularly run due to it being
written to work only with four processes (we regularly test with
six, previously with three), and thus it failed when actually run
due to an out of bounds data buffer assignment. It has been
modified to run at any number of processes greater than four, and
the memory problem has been fixed so the test passes.
Tested:
jam, h5committest, ember
The parallel test ran out of memory because 32bit binary default to use
less memory. Changed RUNPARALLEL to use larger memory (LDR_CNTRL=MAXDATA=0x2000
0000@DSA).
Tested: BP parallel.
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 BP, both -q32 and -q64 modes. No h5committest since this applies to the
AIX platform only.
Added ibm-flags to display the IBM XL compilers version information so that configure
can report them in the configure summary and the libhdf5.settings file.
For now, only the C compiler (xlc) versions are displayed.
Also moved the C compiler options setting from ibm-aix to ibm-flags.
Tested: NCSA Blue-print, both 32 and 64 bit modes.
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.
When gcc is used in the AIX platform, it failed to compile tconfig.c
because it does not recognize the __int64 type. The ibm-aix has the
sizeof __int64=8 cached, as if all compilers supported this type.
Solution:
Removed the cached value for the sizeof __int64 so that during
configure, gcc can report it does not support it and not to use
it in the source code.
Tested:
NCSA Blue which is an AIX machine, using gcc or xlc compiler.
(The gcc still have failure but is being fixed as separated bugs.)