diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2015-04-03 21:41:28 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2015-04-03 21:41:28 (GMT) |
commit | 5630846ea34f29b45aecdb431f846327c4fde9e1 (patch) | |
tree | 83e65a0feb757f39472e70d2168048d091cfed50 /bin | |
parent | 820b4dc39136072bccad1455fc0232ec9e710d58 (diff) | |
parent | b9e5e2af4e31b0a60c2d2f6421fb1b3cb9aa0564 (diff) | |
download | hdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.zip hdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.tar.gz hdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.tar.bz2 |
[svn-r26724] - merge from trunk & fix conflicts.
- fix bug in opending an already open named datatype.
- fix dynamically loaded VOL plugin support with new changes coming in.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/buildhdf5 | 13 | ||||
-rwxr-xr-x | bin/chkmanifest | 141 | ||||
-rwxr-xr-x | bin/cmakehdf5 | 28 | ||||
-rwxr-xr-x | bin/genltanalyze | 31 | ||||
-rwxr-xr-x | bin/h5vers | 14 | ||||
-rwxr-xr-x | bin/locate_sw | 57 | ||||
-rwxr-xr-x | bin/release | 26 | ||||
-rwxr-xr-x | bin/trace | 18 |
8 files changed, 134 insertions, 194 deletions
diff --git a/bin/buildhdf5 b/bin/buildhdf5 index 8ed4696..3a4b0d3 100755 --- a/bin/buildhdf5 +++ b/bin/buildhdf5 @@ -159,19 +159,6 @@ LOCATE_SZLIB() HP-UX) szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/HPUX-11.00" ;; - IRIX) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5-32bit" - ;; - IRIX64) - case "$CC" in - *-n32) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5-32bit" - ;; - *) - szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5" - ;; - esac - ;; Linux) case `uname -m` in i686) diff --git a/bin/chkmanifest b/bin/chkmanifest index 70c38a9..646f815 100755 --- a/bin/chkmanifest +++ b/bin/chkmanifest @@ -20,75 +20,17 @@ verbose=yes MANIFEST=/tmp/HD_MANIFEST.$$ -SVNENTRY=/tmp/HD_SVNENTRY.$$ - -# function definitions - -GETSVNENTRIES_13 () -# Purpose: Extract filenames from the svn v1.3.* entries file -# $1: directory name in which the svn entries is. -# steps: -# 1. remove all single line entries so that step 2 does not fail on them. -# 2. merge all multiple lines entries into single lines. -# 3. remove all non file entries. -# 4. insert a blank line because some entries files has no kind="file" -# entry and ed does not like to do g on an empty file. -# 5. remove everything except the file name. -# 6. remove all blank lines, including the inserted one. -{ -cp $1/entries $SVNENTRY -chmod u+w $SVNENTRY # entries file is not writable. -ed - $SVNENTRY <<EOF -g/^<.*>$/d -g/^</.,/>$/j -v/kind="file"/d -a - -. -g/.*name="/s/// -g/".*/s/// -g/^$/d -w -q -EOF -cat $SVNENTRY -rm $SVNENTRY -} - -GETSVNENTRIES_14 () -# Purpose: Extract filenames from the svn v1.4.* entries file -# $1: directory name in which the svn entries is. -# steps: -# 1. all valid files are followed by a line containing "file" only. -# 2. find them by looking for "file" first, then mark its preceding line as -# wanted. -# 3. remove all non-marked line. -# 4. insert a blank line because some entries files has no kind="file" -# entry and ed does not like to do g on an empty file. -# 5. remove the marks. -{ -cp $1/entries $SVNENTRY -chmod u+w $SVNENTRY # entries file is not writable. -ed - $SVNENTRY <<EOF -g/^file$/-s/^/%WANTED%/ -v/%WANTED%/d -a - -. -g/^%WANTED%/s/// -w -q -EOF -cat $SVNENTRY -rm $SVNENTRY -} - # Main test "$verbose" && echo " Checking MANIFEST..." 1>&2 # clean up $MANIFEST file when exits trap "rm -f $MANIFEST" 0 +# Only split lines on newline, not whitespace +set -f +IFS=' +' + # First make sure i am in the directory in which there is an MANIFEST file # and then do the checking from there. Will try the following, # current directory, parent directory, the directory this command resides. @@ -132,36 +74,55 @@ for file in `cat $MANIFEST`; do fi done +# Get the list of files under version control and check that they are +# present. +# +# First get a list of all the pending files with svn stat and +# check those. +svn_stat=`svn stat -q` +for file in $svn_stat; do + + # Newly added files are not listed by svn ls, which + # we check later. + + # The line listing new files starts with 'A'. + letter=`echo $file | head -c 1` + if [ "$letter" = "A" ]; then + # Convert the seven Subversion status columns to './' so it matches + # the manifest file name. + # + # There is a space between the status columns and file name, hence + # the '8' instead of '7'. + path=`echo $file | sed 's/^.\{8\}/\.\//g'` + # Ignore directories + if [ ! -d $path ]; then + if (grep ^$path$ $MANIFEST >/dev/null); then + : + else + echo "- $path" + fail=yes + fi + fi + fi +done -# Inspect the .svn/entries to figure out what version of svn file entry is -# used. -# The following algorithm is formed via reverse engineering. -# I don't know what the official svn format is if such a specification exists. -# Algorithm: -# If the first line of the file has 'xml version="1.0"' in it, it is created -# by svn 1.3 or older; else if it has '^file$' in it, it is created by svn 1.4. -svn_entry_file=.svn/entries -if head -1 $svn_entry_file | grep 'xml version="1.0"' > /dev/null 2>&1;then - getsvnentries=GETSVNENTRIES_13 -elif grep '^file$' $svn_entry_file > /dev/null 2>&1; then - getsvnentries=GETSVNENTRIES_14 -else - echo "Unknown svn entries format. Aborted" - exit 1 -fi - -for svn in `find . -type d -name .svn -print`; do - path=`echo $svn |sed 's/\/.svn//'` - for file in `$getsvnentries $svn`; do - if (grep ^$path/$file$ $MANIFEST >/dev/null); then - : - else - echo "+ $path/$file" - fail=yes - fi - done +# Next check svn ls, which gets a list of all files that are +# checked in. +svn_ls=`svn ls -R` +for file in $svn_ls; do + path="./${file}" + # Ignore directories + if [ ! -d $path ]; then + if (grep ^$path$ $MANIFEST >/dev/null); then + : + else + echo "+ $path" + fail=yes + fi + fi done +# Finish up if [ "X$fail" = "Xyes" ]; then cat 1>&2 <<EOF The MANIFEST is out of date. Files marked with a minus sign (-) no diff --git a/bin/cmakehdf5 b/bin/cmakehdf5 index ec6357f..1f0fb7c 100755 --- a/bin/cmakehdf5 +++ b/bin/cmakehdf5 @@ -45,9 +45,12 @@ fi cacheinit=$srcdir/config/cmake/cacheinit.cmake build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=OFF # C++ interface default off build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF # Fortran interface default off +enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF # Fortran2003 interface default off build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=ON # High Level interface default on build_testing=-DBUILD_TESTING:BOOL=ON # Build tests default on build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON # Build tools default on +with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT=ON # enable zlib filter default on +with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT=OFF # enables zlib filter default off #============= @@ -71,6 +74,8 @@ Usage: $progname [<options>] where options are: --enable-fortran | --disable-fortran: enable or disable fortran API. Default is off. + --enable-fortran2003 | --disable-fortran2003: + enable or disable fortran2003 API. Default is off. --enable-cxx | --disable-cxx: enable or disable c++ API. Default is off. --enable-hl | --disable-hl: @@ -79,6 +84,12 @@ Usage: $progname [<options>] enable or disable building tools. Default is on. --enable-testing | --disable-testing: enable or disable building tests. Default is on. + --with-zlib=INC,LIB | --without-zlib: + Use zlib library for external deflate I/O filter. Default is on. + INC and LIB are the include and lib directories. + --with-szlib=INC,LIB| --without-szlib: + Use szip library for external szip library I/O filter. Default is off. + INC and LIB are the include and lib directories. --help: shows details help page EOF } @@ -106,7 +117,7 @@ STEP() (TIMESTAMP; nerror=0 ; echo "eval $command" eval $command || nerror=1 ; - TIMESTAMP; exit $nerror) < /dev/null >> "$logfile" 2>&1 + TIMESTAMP; exit $nerror) < /dev/null > "$logfile" 2>&1 if [ $? -ne 0 ]; then echo "error in '$banner'. $progname aborted." exit 1 @@ -137,6 +148,12 @@ while [ $# -gt 0 ]; do --disable-fortran) build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF ;; + --enable-fortran2003) + enable_f2003=-DHDF5_ENABLE_F2003:BOOL=ON + ;; + --disable-fortran2003) + enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF + ;; --enable-cxx) build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=ON ;; @@ -167,8 +184,9 @@ while [ $# -gt 0 ]; do exit 0 ;; *) - echo "Unknown options" + echo "Unknown options: $1" HELP + exit 1 ;; esac shift @@ -198,11 +216,15 @@ echo Running Cmake for HDF5-${version} ... # 4. Configure the C library, tools and tests with this command: STEP "Configure..." "cmake \ + -C $cacheinit \ $build_cpp_lib \ $build_fortran \ + $enable_f2003 \ $build_hl_lib \ $build_testing \ $build_tools \ + $with_zlib \ + $with_szlib \ $srcdir" $configlog # 5. Build the C library, tools and tests with this command: @@ -279,7 +301,7 @@ EOF #========== #========== cat > $cfgfile <<'EOF' -cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR) +cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) ######################################################## # This dashboard is maintained by The HDF Group # For any comments please contact cdashhelp@hdfgroup.org diff --git a/bin/genltanalyze b/bin/genltanalyze index 0b1b1e5..1f56cc1 100755 --- a/bin/genltanalyze +++ b/bin/genltanalyze @@ -60,6 +60,37 @@ flex --nounistd -PH5LTyy -oH5LTanalyze.c H5LTanalyze.l # H5LTparse.c. perl -0777 -pi -e 's/int\nyyparse/hid_t\nyyparse/igs' H5LTparse.c perl -0777 -pi -e 's/int H5LTyyparse/hid_t H5LTyyparse/igs' H5LTparse.c + +# Add code that disables warnings in the flex/bison-generated code. +# +# Note that the GCC pragmas did not exist until gcc 4.2. Earlier versions +# will simply ignore them, but we want to avoid those warnings. +for f in H5LTparse.c H5LTanalyze.c +do + echo '#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2 ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wconversion" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wimplicit-function-declaration" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wlarger-than=" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wmissing-prototypes" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wnested-externs" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wold-style-definition" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wsign-compare" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wsign-conversion" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wstrict-prototypes" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wswitch-default" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wunused-function" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wunused-macros" ' >> tmp.out + echo '#pragma GCC diagnostic ignored "-Wunused-parameter" ' >> tmp.out + echo '#elif defined __SUNPRO_CC ' >> tmp.out + echo '#pragma disable_warn ' >> tmp.out + echo '#elif defined _MSC_VER ' >> tmp.out + echo '#pragma warning(push, 1) ' >> tmp.out + echo '#endif ' >> tmp.out + + cat $f >> tmp.out + mv tmp.out $f +done + cd ../.. exit 0 @@ -159,10 +159,10 @@ while ($_ = shift) { die "mutually exclusive options given\n" if $set && $inc; # Determine file to use as H5public.h, README.txt, -# release_docs/RELEASE.txt, configure.ac, windows/src/H5pubconf.h, -# vms/src/h5pubconf.h and config/lt_vers.am. +# release_docs/RELEASE.txt, configure.ac, windows/src/H5pubconf.h +# and config/lt_vers.am. # The README.txt, release_docs/RELEASE.txt, configure.ac, -# vms/src/h5pubconf.h, windows/src/H5pubconf.h, and config/lt_vers.am +# windows/src/H5pubconf.h, and config/lt_vers.am # files are always in the directory above H5public.h unless ($file) { for (@files) { @@ -187,10 +187,6 @@ die "unable to read file: $RELEASE\n" unless -r $file; my $CONFIGURE = $file; $CONFIGURE =~ s/[^\/]*$/..\/configure.ac/; die "unable to read file: $CONFIGURE\n" unless -r $file; -# vms/src/h5pubconf.h -my $H5VMSPUBCONF = $file; -$H5VMSPUBCONF =~ s/[^\/]*$/..\/vms\/src\/h5pubconf.h/; -die "unable to read file: $H5VMSPUBCONF\n" unless -r $file; # Get the current version number. open FILE, $file or die "unable to open $file: $!\n"; @@ -238,7 +234,6 @@ if ($set) { $README = ""; $RELEASE = ""; $CONFIGURE = ""; - $H5VMSPUBCONF = ""; $LT_VERS = ""; @newver = @curver; } @@ -387,9 +382,6 @@ sub gen_h5pubconf { close FILE; } -# Update the VMS-maintained h5pubconf.h file -gen_h5pubconf("HDF5", $H5VMSPUBCONF, @newver) if $H5VMSPUBCONF; - # Print the new version number if ($verbose) { printf("version %d.%d release %d%s\n", @newver[0,1,2], diff --git a/bin/locate_sw b/bin/locate_sw index 2f2b544..c9a7924 100755 --- a/bin/locate_sw +++ b/bin/locate_sw @@ -67,33 +67,6 @@ case "$OSname" in ;; esac ;; - IRIX) - swpaths="/afs/ncsa/packages/hdf/IRIX_6.5" - ;; - IRIX64) - case "$CC" in - cc|"") #default cc - abi=`cc -show_defaults 2>&1 | grep 'default abi'` - case $abi in - *-n32) - swpaths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5" - ;; - *-64) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - *) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - esac # $abi - ;; - *-n32) - swpaths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5" - ;; - *) - swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5" - ;; - esac - ;; Linux) swpaths="/afs/ncsa/packages/hdf/Linux" ;; @@ -150,36 +123,6 @@ case "$OSname" in ;; esac ;; - IRIX) - swpaths="/afs/ncsa/packages/hdf5/IRIX_6.5" - ;; - IRIX64) - case "$CC" in - cc|"") #default cc - abi=`cc -show_defaults 2>&1 | grep 'default abi'` - case $abi in - *-n32) - swpaths="/afs/ncsa/packages/hdf5/IRIX64-n32_6.5" - ;; - *-64) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - *) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - esac # $abi - ;; - *-n32) - swpaths="/afs/ncsa/packages/hdf5/IRIX64-n32_6.5" - ;; - *) - #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5" - swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64" - ;; - esac - ;; Linux) swpaths="/afs/ncsa/packages/hdf5/Linux" ;; diff --git a/bin/release b/bin/release index d771db6..703916b 100755 --- a/bin/release +++ b/bin/release @@ -50,31 +50,33 @@ Usage: $0 -d <dir> [-h] [--nocheck] [--private] <methods> ... This must be run at the top level of the source directory. The other command-line options are the names of the programs to use for compressing the resulting tar archive (if none are given then -"tar md5" is assumed): +"tar" is assumed): tar -- use tar and don't do any compressing. gzip -- use gzip with "-9" and append ".gz" to the output name. bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name. zip -- convert all text files to DOS style and form a zip file for Windows use. - md5 -- produce a md5 checksum in addition to the archive. doc -- produce the latest doc tree in addition to the archive. +An md5 checksum is produced for each archive created and stored in the md5 file. + Examples: $ bin/release -d /tmp /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar - /tmp/hdf5-1.8.13.tar.md5 $ bin/release -d /tmp gzip /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar.gz - $ bin/release -d /tmp tar gzip zip md5 + $ bin/release -d /tmp tar gzip zip /tmp/hdf5-1.8.13-RELEASE.txt + /tmp/hdf5-1.8.13.md5 /tmp/hdf5-1.8.13.tar /tmp/hdf5-1.8.13.tar.gz - /tmp/hdf5-1.8.13.tar.md5 /tmp/hdf5-1.8.13.tar.zip EOF @@ -212,9 +214,9 @@ while [ -n "$1" ]; do esac done -# Default methods are tar and md5 +# Default method is tar if [ "X$methods" = "X" ]; then - methods="tar md5" + methods="tar" fi # Create the temporay work directory. @@ -289,26 +291,28 @@ test "$verbose" && echo " Running tar..." 1>&2 ) # Compress +MD5file=$HDF5_VERS.md5 +cp /dev/null $DEST/$MD5file for comp in $methods; do case $comp in tar) cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar + (cd $DEST; md5sum $HDF5_VERS.tar >> $MD5file) ;; gzip) test "$verbose" && echo " Running gzip..." 1>&2 gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz + (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file) ;; bzip2) test "$verbose" && echo " Running bzip2..." 1>&2 bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2 + (cd $DEST; md5sum $HDF5_VERS.tar.bz2 >> $MD5file) ;; zip) test "$verbose" && echo " Creating zip ball..." 1>&2 tar2zip $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2 - ;; - md5) - test "$verbose" && echo " Creating checksum..." 1>&2 - (cd $tmpdir; md5sum $HDF5_VERS.tar ) > $DEST/$HDF5_VERS.tar.md5 + (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file) ;; doc) test "$verbose" && echo " Creating docs..." 1>&2 @@ -135,6 +135,7 @@ $Source = ""; "H5I_free_t" => "x", "H5I_iterate_func_t" => "x", "H5L_class_t" => "x", + "H5I_search_func_t" => "x", "H5L_elink_traverse_t" => "x", "H5L_iterate_t" => "x", "H5MM_allocate_t" => "x", @@ -300,14 +301,10 @@ sub rewrite_func ($$$$$) { # The H5TRACE() statement if ($body =~ /\/\*[ \t]*NO[ \t]*TRACE[ \t]*\*\//) { - if ($body =~ /\s*H5TRACE\d+\s*\(/) { - errmesg $file, $name, "warning: trace info was not updated because of NO TRACE comment"; - } else { - errmesg $file, $name, "warning: trace info was not inserted because of NO TRACE comment"; - } + # Ignored due to NO TRACE comment. } elsif ($body =~ s/((\n[ \t]*)H5TRACE\d+\s*\(.*?\);)\n/"$2$trace"/es) { - # Replaced an H5TRACE macro - } elsif ($body=~s/((\n[ \t]*)FUNC_ENTER\w*\s*\(.*?\);??)\n/"$1$2$trace"/es) { + # Replaced an H5TRACE macro. + } elsif ($body=~s/((\n[ \t]*)FUNC_ENTER\w*\s*(\(.*?\))?;??)\n/"$1$2$trace"/es) { # Added an H5TRACE macro after a FUNC_ENTER macro. } else { errmesg $file, $name, "unable to insert tracing information"; @@ -336,14 +333,14 @@ for $file (@ARGV) { # Make modifications my $original = $Source; - my $napi = $Source =~ s/\n([A-Za-z]\w*(\s+[a-z]\w*)*)\s*\n #type + my $napi = $Source =~ s/\n([A-Za-z]\w*(\s+[A-Za-z]\w*)*\s*\**)\n #type (H5[A-Z]{0,2}[^_A-Z0-9]\w*) #name \s*\((.*?)\)\s* #args (\{.*?\n\}[^\n]*) #body /rewrite_func($file,$1,$3,$4,$5)/segx; $total_api += $napi; - # If the source changed then print out the new version +# If the source changed then print out the new version if ($original ne $Source) { printf "%s: instrumented %d API function%s\n", $file, $napi, 1==$napi?"":"s"; @@ -354,3 +351,6 @@ for $file (@ARGV) { } } } + +printf "Finished processing HDF5 API calls\n" + |