<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>
GitLab
</title>

</head>
<body>
<style type="text/css">
img {
max-width: 100%; height: auto;
}
</style>
<div class="content">
<h3>
Shane Snyder pushed to branch lustre-mod
at <a href="https://xgitlab.cels.anl.gov/darshan/darshan">darshan / darshan</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/0a6399f3acde4614a3adf9453505ed3d3e93b0ad">0a6399f3</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-02-22T12:52:34-06:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">bug fix in darhsan-config linker options

Since we had to modify HDF5/PnetCDF linker flags to work on Cray
by undefining appropriate symbols, we need to update the linker
options used in darshan-config. darshan-config linker options need
to include the stubs libraries and use '--start-group' and
'--end-group' flags to resolve the symbols correctly</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/47a6c64a63c94e6c8bec850abfa7633bdb3994cf">47a6c64a</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-02-22T12:52:35-06:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">bug fix in reduction of min nonzero counters</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/07ff011f1df65710745a931a17ada915dce746c8">07ff011f</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-02-22T15:54:05-06:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">ignore i/o to paths in /var/ directory</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/f2293a81bb77ddf2b856ef349f7877bbcb4b1e8d">f2293a81</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-14T16:08:28-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">fix compile warnings for uninit timers</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/b4cc833cf1abc58954ba302b56cd53e69c91630c">b4cc833c</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-14T16:08:28-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">bug fix in resolving MPI_Barrrier in shared lib</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/6e96d134ae603f778f9433f44284c5ed9d5cb823">6e96d134</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-18T14:38:37-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">regression tests now catch LDPRELOAD symbol errors</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/eaf1d8dd9b3cd729e851ec5415faa5513a126b49">eaf1d8dd</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-18T14:38:37-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">update release checklist to refer to gitlab</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/56a5aab6dc13e9daef6e4dd5274063911af7de6b">56a5aab6</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-18T14:38:37-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">updated configure to reference 3.0.0 version</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/f139502fbaec5576ad4ea76b29477b82755d6121">f139502f</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-18T14:38:37-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">updated ChangeLog for 3.0.0 release</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/ce53fdd5dd4b95419d96e2f45b9c9ec977c67d6c">ce53fdd5</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-18T15:50:09-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">bug fix in regression test condition check</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/63512a55b90b9a9fbc7d4b184cb2e6f30d8fe608">63512a55</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-24T19:25:44+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">change bg regression to use radix-io repo</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/fd0a94137c377faae0d9a16233774a48ff7a2db8">fd0a9413</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">update regression scripts to use .darshan output</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/edb0a0b0f285829dd55b259908d383378200a823">edb0a0b0</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">add example output logs for x86_64 & ppc64</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/6f7229a376657317aae03999284ddc8e0c77ff06">6f7229a3</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">fix makefile clean to remove darshan-diff</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/a5778368a7334baa6616571f5346e3004ce360b9">a5778368</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">update documentation for darshan-runtime component

Darshan now provides debugging tips for cases where log files
are not generated.</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/8f3e3c9e371dbdac32fca29392eb1b22766c6f36">8f3e3c9e</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T11:50:21-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">Updated ChangeLog prior to 3.0.0 offiicial release</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/bd99f40154c9d9479d388dd2dc301945ca9764af">bd99f401</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-03-28T12:40:20-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">install null-log-format when building darshan-util

Otherwise, compile errors are generated when building an external
tool that uses the darshan-logutils api/library.</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/c5f7703a0b162a918ca82c3d3ca57ce3ef5553b2">c5f7703a</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-04-14T11:23:36-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">make limits.h include more portable</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/1eb2a5e4d71f390269143c7147a34f1d0a8377a3">1eb2a5e4</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-04-26T23:02:21-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">modify darshan-logutils to sort mount info

mount information is now sorted in order of descending mount
point lengths to fix a bug in matching file names to mount
points. the longest mount point string which matches the file
name is the corresponding mount. this change requires slight
changes to the darshan-logutils API, but does not modify the
log file format</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/856982506c577054ee0d3a027df7d88944e2050e">85698250</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-04-27T16:29:51+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">bug fix in bzip2 configure check</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/f88ebef63933df7d3c2697ed5c7dbbb413a19f0b">f88ebef6</a></strong>
<div>
<span>by Phil Carns</span>
<i>at 2016-05-01T07:57:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">fix minor potential bug in open timestamp

- be careful to record start timestamp of first open to start rather
  than start timestamp of first open to complete</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/2faf24600acfb7bece70bd134183ae53b06e53c1">2faf2460</a></strong>
<div>
<span>by Phil Carns</span>
<i>at 2016-05-01T09:55:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">possible bug fix to io start timestamps

- read and write start timestamps should record start timestamp of first
  read/write to *begin*, not start timestamp of first read/write to
  complete
- mirrors earlier fix to open timestamps</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/a3b2cfb9aaa057df2487149025b2a0fd0b67d9a1">a3b2cfb9</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-05-04T13:22:27-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">fix perl scripts to get perl bin from env</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/4f1dbfc794d2fcd02b9fcb36115a90084f11c886">4f1dbfc7</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-05-12T09:49:38-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">fix typos in fortran env vars in runtime docs</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/f75b434949820b98d6f2fd8bca21f378272ef28c">f75b4349</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-05-12T17:13:29-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">fortran compiler generator autodetects mpich libs

this functionality is helpful especially on mira/cetus where
the mpich libraries are named depending on the fortran version
and the type of compiler being used (gcc, xl, etc.).</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/b41c9d63248117c83c5c6165b39e77403d3277dc">b41c9d63</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-05-13T10:38:56-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">cxx compiler generators autodetect mpich lib name</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/5e1a0963a498aebfa583d4b653561f1fd29c6b59">5e1a0963</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-05-16T14:20:38-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">bug fix in agg_perf_by_slowest perf calculation

this calculation was inadvertently accounting for metadata time
twice. also, clarified timing descriptions for slowest unique
file perf calculations.</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/3266825fa44dbc8e1cefbe99d189ae491d1ed42c">3266825f</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-05-17T13:25:55-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">Merge branch 'master' into lustre-mod

Conflicts:
        ChangeLog</pre>
</li>
</ul>
<h4>29 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#620f2ecad2bb6f74b2fcd0134963a841" style="text-decoration: none">
ChangeLog
</a>
</li>
<li class="file-stats">
<a href="#ad29afc395839758d41094872298bd0d" style="text-decoration: none">
darshan-runtime/darshan-config.in
</a>
</li>
<li class="file-stats">
<a href="#c0b0bf6d71bc5fc7e6d50d69c8aa2413" style="text-decoration: none">
darshan-runtime/darshan-gen-cxx.pl.in
</a>
</li>
<li class="file-stats">
<a href="#2ace16276b68c7d5aef163bb260bd9f7" style="text-decoration: none">
darshan-runtime/darshan-gen-fortran.pl.in
</a>
</li>
<li class="file-stats">
<a href="#4dfe7e78b540daa005ea4b5f0458c90d" style="text-decoration: none">
darshan-runtime/doc/darshan-runtime.txt
</a>
</li>
<li class="file-stats">
<a href="#172f4bf093caeeba24730a1adff8f15a" style="text-decoration: none">
darshan-runtime/lib/darshan-core-init-finalize.c
</a>
</li>
<li class="file-stats">
<a href="#a453f91a0a4af7575917fad54f4ac1d0" style="text-decoration: none">
darshan-runtime/lib/darshan-core.c
</a>
</li>
<li class="file-stats">
<a href="#dffc348e63ffc0037c23afd36439222f" style="text-decoration: none">
darshan-runtime/lib/darshan-hdf5.c
</a>
</li>
<li class="file-stats">
<a href="#f82b13d5e971dfa7a0cea839dd9d819c" style="text-decoration: none">
darshan-runtime/lib/darshan-mpiio.c
</a>
</li>
<li class="file-stats">
<a href="#ba4d174bce4109eebf5db0040421eba2" style="text-decoration: none">
darshan-runtime/lib/darshan-pnetcdf.c
</a>
</li>
<li class="file-stats">
<a href="#bbc2314e774c28d45e241dbe5d218f70" style="text-decoration: none">
darshan-runtime/lib/darshan-posix.c
</a>
</li>
<li class="file-stats">
<a href="#02c44bcb0c30e1642888c0330c8d112c" style="text-decoration: none">
<span class="new-file" style="color: #090">
+
darshan-test/example-output/mpi-io-test-ppc64-3.0.0.darshan
</span>
</a>
</li>
<li class="file-stats">
<a href="#5ddb4a7da6ac3ae899220a2054c79be0" style="text-decoration: none">
<span class="new-file" style="color: #090">
+
darshan-test/example-output/mpi-io-test-x86_64-3.0.0.darshan
</span>
</a>
</li>
<li class="file-stats">
<a href="#96c68c4d0376aa9733e6df1aff7dc9f8" style="text-decoration: none">
darshan-test/regression/bg-profile-conf/runjob.sh
</a>
</li>
<li class="file-stats">
<a href="#e483fe4e07b9111852a8f4e3e4e61d16" style="text-decoration: none">
darshan-test/regression/run-all.sh
</a>
</li>
<li class="file-stats">
<a href="#54071697bdb74afd518e691935ab92ab" style="text-decoration: none">
darshan-test/regression/test-cases/cxxpi.sh
</a>
</li>
<li class="file-stats">
<a href="#879ee3b75b3b68112858e3c5a60c5a35" style="text-decoration: none">
darshan-test/regression/test-cases/fperf-f77.sh
</a>
</li>
<li class="file-stats">
<a href="#c980cac8551b1b1f8a4a5bb6e26a7f54" style="text-decoration: none">
darshan-test/regression/test-cases/fperf-f90.sh
</a>
</li>
<li class="file-stats">
<a href="#0456dbe6f74a19ea201dea7c0be35e3d" style="text-decoration: none">
darshan-test/regression/test-cases/mpi-io-test.sh
</a>
</li>
<li class="file-stats">
<a href="#36f20111c8470f8bf0a970af1aa5de94" style="text-decoration: none">
darshan-util/Makefile.in
</a>
</li>
<li class="file-stats">
<a href="#1c6f4778cb1e5e381e17e502561a0932" style="text-decoration: none">
darshan-util/configure
</a>
</li>
<li class="file-stats">
<a href="#eb9ceb07a63a2ccebe3dc5ed6d87d9a7" style="text-decoration: none">
darshan-util/darshan-convert-logs.pl
</a>
</li>
<li class="file-stats">
<a href="#b150bb0039b44a462e2526f9f645591e" style="text-decoration: none">
darshan-util/darshan-convert.c
</a>
</li>
<li class="file-stats">
<a href="#0c08409ec4a7facc84b7b99ac6b35e60" style="text-decoration: none">
darshan-util/darshan-job-summary/bin/darshan-job-summary.pl.in
</a>
</li>
<li class="file-stats">
<a href="#3252e9669561868c6dd243fbab40f81c" style="text-decoration: none">
darshan-util/darshan-logutils.c
</a>
</li>
<li class="file-stats">
<a href="#a2a75853fe5e7389f09f30a568592148" style="text-decoration: none">
darshan-util/darshan-logutils.h
</a>
</li>
<li class="file-stats">
<a href="#cc28d82bed8d943c98f0976e06156c3f" style="text-decoration: none">
darshan-util/darshan-parser.c
</a>
</li>
<li class="file-stats">
<a href="#1ce2d3a7bb8a17f983b57ace2a62bbfd" style="text-decoration: none">
darshan-util/doc/darshan-util.txt
</a>
</li>
<li class="file-stats">
<a href="#a18f57f424e83727097db04b11d0fe62" style="text-decoration: none">
maint/config/check_bzlib.m4
</a>
</li>
</ul>
<h4>Changes:</h4>
<li id="620f2ecad2bb6f74b2fcd0134963a841">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-0">
<strong>
ChangeLog
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/ChangeLog
</span><span style="background: #ddffdd; color: #000000">+++ b/ChangeLog
</span><span style="color: #aaaaaa">@@ -4,13 +4,22 @@ Darshan Release Change Log
</span> 
 Darshan-3.0.0
 =============
<span style="background: #ddffdd; color: #000000">+* install darshan-null-log-format.h header when installing
+  darshan-util component, otherwise compiler errors are
+  generated when building external tools that use
+  libdarshan-util
+* update docs to give debugging tips for cases where
+  Darshan logs are not generated
+* fix shared library regression test script to check for
+  potential errors with Darshan symbols rather than
+  failing silently in these cases
</span> * bug fix for determining minimum non-zero counters in
 shared file reductions in all modules
 * loosen Darshan's PMPI symbol check to prevent inadvertent
   disabling of Darshan for some MPICH builds
 * update runtime docs to give information on upgrading Darshan
<span style="background: #ffdddd; color: #000000">-* bug fix for resolving MPI_Gather when LDPRELOADing Darshan's
-  shared libraries (reported by Richard Hedges)
</span><span style="background: #ddffdd; color: #000000">+* bug fix for resolving MPI_Gather and MPI_Barrier when LDPRELOADing
+  Darshan's shared libraries (reported by Richard Hedges and Rob Latham)
</span> * add more helpful error handling when opening 2.x version log files
 * port darshan-diff utility over to new log file format
 * fix numerous configure bugs on Cray systems
</code></pre>

<br>
</li>
<li id="ad29afc395839758d41094872298bd0d">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-1">
<strong>
darshan-runtime/darshan-config.in
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/darshan-config.in
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/darshan-config.in
</span><span style="color: #aaaaaa">@@ -12,7 +12,7 @@ DARSHAN_LD_FLAGS="@LDFLAGS@"
</span> #   in turn used one of those HLLs).
 
 PRE_LD_FLAGS="-L$DARSHAN_LIB_PATH $DARSHAN_LD_FLAGS -ldarshan -lz -Wl,@$DARSHAN_SHARE_PATH/ld-opts/darshan-base-ld-opts"
<span style="background: #ffdddd; color: #000000">-POST_LD_FLAGS="-L$DARSHAN_LIB_PATH -ldarshan -lz -lrt -lpthread"
</span><span style="background: #ddffdd; color: #000000">+POST_LD_FLAGS="-L$DARSHAN_LIB_PATH -Wl,--start-group -ldarshan -ldarshan-stubs -Wl,--end-group -lz -lrt -lpthread"
</span> 
 usage="\
 Usage: darshan-config [--pre-ld-flags] [--post-ld-flags]"
</code></pre>

<br>
</li>
<li id="c0b0bf6d71bc5fc7e6d50d69c8aa2413">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-2">
<strong>
darshan-runtime/darshan-gen-cxx.pl.in
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/darshan-gen-cxx.pl.in
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/darshan-gen-cxx.pl.in
</span><span style="color: #aaaaaa">@@ -282,6 +282,10 @@ print OUTPUT<<"EOF";
</span>     if [ \$? -eq 0 ] ; then
         CXXMPICH=-lmpicxx
     fi
<span style="background: #ddffdd; color: #000000">+    bgqlib_out=`grep -m 1 -Po "libmpichcxx-\\S+" \$tmpfile`
+    if [ \$? -eq 0 ] ; then
+        CXXMPICH=`echo \$bgqlib_out | sed 's/libmpichcxx-\\(.*\\)\\.a.*/-lmpichcxx-\\1/'`
+    fi
</span> 
     rm \$tmpfile >& /dev/null
 
</code></pre>

<br>
</li>
<li id="2ace16276b68c7d5aef163bb260bd9f7">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-3">
<strong>
darshan-runtime/darshan-gen-fortran.pl.in
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/darshan-gen-fortran.pl.in
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/darshan-gen-fortran.pl.in
</span><span style="color: #aaaaaa">@@ -287,7 +287,13 @@ print OUTPUT<<"EOF";
</span>         if [ \$rc_cnk_check -eq 0 ] ; then
             FMPICH=-lfmpich.cnk
         else
<span style="background: #ffdddd; color: #000000">-            FMPICH=-lfmpich
</span><span style="background: #ddffdd; color: #000000">+            bgqlib_out=`grep -Po "libmpichf\\S\+\-\\S\+" \$tmpfile 2>/dev/null`
+            rc_bgqlib_check=\$?
+            if [ \$rc_bgqlib_check -eq 0 ] ; then
+                FMPICH=`echo \$bgqlib_out | sed 's/libmpich\\(.*\\)-\\(.*\\).a/-lmpich\\1-\\2/'`
+            else
+                FMPICH=-lfmpich
+            fi
</span>         fi
     fi
 
</code></pre>

<br>
</li>
<li id="4dfe7e78b540daa005ea4b5f0458c90d">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-4">
<strong>
darshan-runtime/doc/darshan-runtime.txt
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/doc/darshan-runtime.txt
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/doc/darshan-runtime.txt
</span><span style="color: #aaaaaa">@@ -169,8 +169,8 @@ Example for MPICH 3.1 or earlier:
</span> ----
 export MPICC_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-cc
 export MPICXX_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-cxx
<span style="background: #ffdddd; color: #000000">-export MPICF77_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-f
-export MPICF90_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-f
</span><span style="background: #ddffdd; color: #000000">+export MPIF77_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-f
+export MPIF90_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-f
</span> ----
 
 Examples for command line use:
<span style="color: #aaaaaa">@@ -213,17 +213,36 @@ environment variable to insert instrumentation at run time.  The executables
</span> should be compiled using the normal, unmodified MPI compiler.
 
 To use this mechanism, set the `LD_PRELOAD` environment variable to the full
<span style="background: #ffdddd; color: #000000">-path to the Darshan shared library, as in this example:
</span><span style="background: #ddffdd; color: #000000">+path to the Darshan shared library. The preferred method of inserting Darshan
+instrumentation in this case is to set the LD_PRELOAD variable specifically
+for the application of interest. Typically this is possible using
+command line arguments offered by the `mpirun` or `mpiexec` scripts or by
+the job scheduler:
</span> 
 ----
<span style="background: #ffdddd; color: #000000">-export LD_PRELOAD=/home/carns/darshan-install/lib/libdarshan.so
</span><span style="background: #ddffdd; color: #000000">+mpiexec -n 4 -env LD_PRELOAD /home/carns/darshan-install/lib/libdarshan.so mpi-io-test
+----
+
+----
+srun -n 4 --export=LD_PRELOAD=/home/carns/darshan-install/lib/libdarshan.so mpi-io-test
+----
+
+For sequential programs, the following will set LD_PRELOAD for process duration only:
+
</span> ----
<span style="background: #ddffdd; color: #000000">+env LD_PRELOAD=/home/carns/darshan-install/lib/libdarshan.so mpi-io-test
+----
+
+Other environments may have other specific options for controlling this behavior.
+Please check your local site documentation for details.
</span> 
<span style="background: #ffdddd; color: #000000">-You can then run your application as usual.  Some environments may require a
-special `mpirun` or `mpiexec` command line argument to propagate the
-environment variable to all processes.  Other environments may require a
-scheduler submission option to control this behavior.  Please check your
-local site documentation for details.
</span><span style="background: #ddffdd; color: #000000">+It is also possible to just export LD_PRELOAD as follows, but it is recommended
+against doing that to prevent Darshan and MPI symbols from being pulled into
+unrelated binaries:
+
+----
+export LD_PRELOAD=/home/carns/darshan-install/lib/libdarshan.so
+----
</span> 
 === Instrumenting dynamically-linked Fortran applications
 
<span style="color: #aaaaaa">@@ -294,8 +313,8 @@ Blue Gene profiling configuration example:
</span> ----
 export MPICC_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-bg-cc
 export MPICXX_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-bg-cxx
<span style="background: #ffdddd; color: #000000">-export MPICF77_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-bg-f
-export MPICF90_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-bg-f
</span><span style="background: #ddffdd; color: #000000">+export MPIF77_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-bg-f
+export MPIF90_PROFILE=$DARSHAN_PREFIX/share/mpi-profile/darshan-bg-f
</span> ----
 
 === Cray platforms (XE, XC, or similar)
<span style="color: #aaaaaa">@@ -511,3 +530,47 @@ behavior at runtime:
</span> * DARSHAN_LOGPATH: specifies the path to write Darshan log files to. Note that this directory needs to be formatted using the darshan-mk-log-dirs script.
 * DARSHAN_LOGFILE: specifies the path (directory + Darshan log file name) to write the output Darshan log to. This overrides the default Darshan behavior of automatically generating a log file name and adding it to a log file directory formatted using darshan-mk-log-dirs script.
 * DARSHAN_MODMEM: specifies the maximum amount of memory (in MiB) a Darshan instrumentation module can consume at runtime.
<span style="background: #ddffdd; color: #000000">+
+== Debugging
+
+=== No log file
+
+In cases where Darshan is not generating a log file for an application, some common things to check are:
+
+* Check stderr to ensure Darshan isn't indicating any internal errors (e.g., invalid log file path)
+
+For statically linked executables:
+
+* Ensure that Darshan symbols are present in the underlying executable by running `nm` on it:
+----
+> nm test | grep darshan
+0000000000772260 b darshan_core
+0000000000404440 t darshan_core_cleanup
+00000000004049b0 T darshan_core_initialize
+000000000076b660 d darshan_core_mutex
+00000000004070a0 T darshan_core_register_module
+----
+
+* Make sure the application executable is statically linked:
+    ** In general, we encourage the use of purely statically linked executables when using the static
+instrumentation method given in link:darshan-runtime.html#_instrumenting_statically_linked_applications[Section 5]
+    ** If purely static executables are not an option, we encourage users to use the LD_PRELOAD method of
+instrumentation given in link:darshan-runtime.html#_instrumenting_dynamically_linked_applications[Section 6]
+    ** Statically linked executables are the default on Cray platforms and the IBM BG platforms; 
+statically linked executables can be explicitly requested using the `-static` compile option to most compilers
+    ** You can verify that an executable is purely statically linked by using the `file` command:
+----
+> file mpi-io-test
+mpi-io-test: ELF 64-bit LSB  executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=9893e599e7a560159ccf547b4c4ba5671f65ba32, not stripped
+----
+
+* Ensure that the linker is correctly linking in Darshan's runtime libraries:
+    ** A common mistake is to explicitly link in the underlying MPI libraries (e.g., `-lmpich` or `-lmpichf90`)
+in the link command, which can interfere with Darshan's instrumentation
+        *** These libraries are usually linked in automatically by the compiler
+        *** MPICH's `mpicc` comipler's `-show` flag can be used to examine the invoked link command, for instance
+    ** The linker's `-y` option can be used to verify that Darshan is properly intercepting MPI_Init
+function (e.g. by setting `CFLAGS='-Wl,-yMPI_Init'`), which it uses to initialize its runtime structures
+----
+/usr/common/software/darshan/3.0.0-pre3/lib/libdarshan.a(darshan-core-init-finalize.o): definition of MPI_Init
+----
</span></code></pre>

<br>
</li>
<li id="172f4bf093caeeba24730a1adff8f15a">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-5">
<strong>
darshan-runtime/lib/darshan-core-init-finalize.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/lib/darshan-core-init-finalize.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/lib/darshan-core-init-finalize.c
</span><span style="color: #aaaaaa">@@ -137,6 +137,7 @@ DARSHAN_FORWARD_DECL(PMPI_Gather, int, (const void *sendbuf, int sendcount, MPI_
</span> #else
 DARSHAN_FORWARD_DECL(PMPI_Gather, int, (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm));
 #endif
<span style="background: #ddffdd; color: #000000">+DARSHAN_FORWARD_DECL(PMPI_Barrier, int, (MPI_Comm comm));
</span> 
 void resolve_mpi_symbols (void)
 {
<span style="color: #aaaaaa">@@ -197,6 +198,7 @@ void resolve_mpi_symbols (void)
</span>     MAP_OR_FAIL(PMPI_Send);
     MAP_OR_FAIL(PMPI_Recv);
     MAP_OR_FAIL(PMPI_Gather);
<span style="background: #ddffdd; color: #000000">+    MAP_OR_FAIL(PMPI_Barrier);
</span> 
     return;
 }
</code></pre>

<br>
</li>
<li id="a453f91a0a4af7575917fad54f4ac1d0">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-6">
<strong>
darshan-runtime/lib/darshan-core.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/lib/darshan-core.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/lib/darshan-core.c
</span><span style="color: #aaaaaa">@@ -52,6 +52,7 @@ char* darshan_path_exclusions[] = {
</span> "/sbin/",
 "/sys/",
 "/proc/",
<span style="background: #ddffdd; color: #000000">+"/var/",
</span> NULL
 };
 
<span style="color: #aaaaaa">@@ -261,12 +262,12 @@ void darshan_core_shutdown()
</span>     darshan_record_id *mod_shared_recs;
     int shared_rec_cnt = 0;
     double start_log_time;
<span style="background: #ffdddd; color: #000000">-    double open1, open2;
-    double job1, job2;
-    double rec1, rec2;
</span><span style="background: #ddffdd; color: #000000">+    double open1 = 0, open2 = 0;
+    double job1 = 0, job2 = 0;
+    double rec1 = 0, rec2 = 0;
</span>     double mod1[DARSHAN_MAX_MODS] = {0};
     double mod2[DARSHAN_MAX_MODS] = {0};
<span style="background: #ffdddd; color: #000000">-    double header1, header2;
</span><span style="background: #ddffdd; color: #000000">+    double header1 = 0, header2 = 0;
</span>     double tm_end;
     uint64_t gz_fp = 0;
     MPI_File log_fh;
</code></pre>

<br>
</li>
<li id="dffc348e63ffc0037c23afd36439222f">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-7">
<strong>
darshan-runtime/lib/darshan-hdf5.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/lib/darshan-hdf5.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/lib/darshan-hdf5.c
</span><span style="color: #aaaaaa">@@ -117,7 +117,8 @@ hid_t DARSHAN_DECL(H5Fcreate)(const char *filename, unsigned flags,
</span>         file = hdf5_file_by_name_sethid(filename, ret);
         if(file)
         {
<span style="background: #ffdddd; color: #000000">-            if(file->file_record->fcounters[HDF5_F_OPEN_TIMESTAMP] == 0)
</span><span style="background: #ddffdd; color: #000000">+            if(file->file_record->fcounters[HDF5_F_OPEN_TIMESTAMP] == 0 || 
+             file->file_record->fcounters[HDF5_F_OPEN_TIMESTAMP] > tm1)
</span>                 file->file_record->fcounters[HDF5_F_OPEN_TIMESTAMP] = tm1;
             file->file_record->counters[HDF5_OPENS] += 1;
         }
<span style="color: #aaaaaa">@@ -156,7 +157,8 @@ hid_t DARSHAN_DECL(H5Fopen)(const char *filename, unsigned flags,
</span>         file = hdf5_file_by_name_sethid(filename, ret);
         if(file)
         {
<span style="background: #ffdddd; color: #000000">-            if(file->file_record->fcounters[HDF5_F_OPEN_TIMESTAMP] == 0)
</span><span style="background: #ddffdd; color: #000000">+            if(file->file_record->fcounters[HDF5_F_OPEN_TIMESTAMP] == 0 || 
+             file->file_record->fcounters[HDF5_F_OPEN_TIMESTAMP] > tm1)
</span>                 file->file_record->fcounters[HDF5_F_OPEN_TIMESTAMP] = tm1;
             file->file_record->counters[HDF5_OPENS] += 1;
         }
</code></pre>

<br>
</li>
<li id="f82b13d5e971dfa7a0cea839dd9d819c">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-8">
<strong>
darshan-runtime/lib/darshan-mpiio.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/lib/darshan-mpiio.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/lib/darshan-mpiio.c
</span><span style="color: #aaaaaa">@@ -153,7 +153,8 @@ static void mpiio_shutdown(void);
</span>         file->file_record->counters[MPIIO_COLL_OPENS] += 1; \
     if(__info != MPI_INFO_NULL) \
         file->file_record->counters[MPIIO_HINTS] += 1; \
<span style="background: #ffdddd; color: #000000">-    if(file->file_record->fcounters[MPIIO_F_OPEN_TIMESTAMP] == 0) \
</span><span style="background: #ddffdd; color: #000000">+    if(file->file_record->fcounters[MPIIO_F_OPEN_TIMESTAMP] == 0 || \
+     file->file_record->fcounters[MPIIO_F_OPEN_TIMESTAMP] > __tm1) \
</span>         file->file_record->fcounters[MPIIO_F_OPEN_TIMESTAMP] = __tm1; \
     DARSHAN_TIMER_INC_NO_OVERLAP(file->file_record->fcounters[MPIIO_F_META_TIME], __tm1, __tm2, file->last_meta_end); \
 } while(0)
<span style="color: #aaaaaa">@@ -174,7 +175,8 @@ static void mpiio_shutdown(void);
</span>     if(file->last_io_type == DARSHAN_IO_WRITE) \
         file->file_record->counters[MPIIO_RW_SWITCHES] += 1; \
     file->last_io_type = DARSHAN_IO_READ; \
<span style="background: #ffdddd; color: #000000">-    if(file->file_record->fcounters[MPIIO_F_READ_START_TIMESTAMP] == 0) \
</span><span style="background: #ddffdd; color: #000000">+    if(file->file_record->fcounters[MPIIO_F_READ_START_TIMESTAMP] == 0 || \
+     file->file_record->fcounters[MPIIO_F_READ_START_TIMESTAMP] > __tm1) \
</span>         file->file_record->fcounters[MPIIO_F_READ_START_TIMESTAMP] = __tm1; \
     file->file_record->fcounters[MPIIO_F_READ_END_TIMESTAMP] = __tm2; \
     if(file->file_record->fcounters[MPIIO_F_MAX_READ_TIME] < __elapsed) { \
<span style="color: #aaaaaa">@@ -199,7 +201,8 @@ static void mpiio_shutdown(void);
</span>     if(file->last_io_type == DARSHAN_IO_READ) \
         file->file_record->counters[MPIIO_RW_SWITCHES] += 1; \
     file->last_io_type = DARSHAN_IO_WRITE; \
<span style="background: #ffdddd; color: #000000">-    if(file->file_record->fcounters[MPIIO_F_WRITE_START_TIMESTAMP] == 0) \
</span><span style="background: #ddffdd; color: #000000">+    if(file->file_record->fcounters[MPIIO_F_READ_START_TIMESTAMP] == 0 || \
+     file->file_record->fcounters[MPIIO_F_READ_START_TIMESTAMP] > __tm1) \
</span>         file->file_record->fcounters[MPIIO_F_WRITE_START_TIMESTAMP] = __tm1; \
     file->file_record->fcounters[MPIIO_F_WRITE_END_TIMESTAMP] = __tm2; \
     if(file->file_record->fcounters[MPIIO_F_MAX_WRITE_TIME] < __elapsed) { \
</code></pre>

<br>
</li>
<li id="ba4d174bce4109eebf5db0040421eba2">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-9">
<strong>
darshan-runtime/lib/darshan-pnetcdf.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/lib/darshan-pnetcdf.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/lib/darshan-pnetcdf.c
</span><span style="color: #aaaaaa">@@ -114,7 +114,8 @@ int DARSHAN_DECL(ncmpi_create)(MPI_Comm comm, const char *path,
</span>         file = pnetcdf_file_by_name_setncid(path, (*ncidp));
         if(file)
         {
<span style="background: #ffdddd; color: #000000">-            if(file->file_record->fcounters[PNETCDF_F_OPEN_TIMESTAMP] == 0)
</span><span style="background: #ddffdd; color: #000000">+            if(file->file_record->fcounters[PNETCDF_F_OPEN_TIMESTAMP] == 0 || 
+             file->file_record->fcounters[PNETCDF_F_OPEN_TIMESTAMP] > tm1)
</span>                 file->file_record->fcounters[PNETCDF_F_OPEN_TIMESTAMP] = tm1;
             DARSHAN_MPI_CALL(PMPI_Comm_size)(comm, &comm_size);
             if(comm_size == 1)
<span style="color: #aaaaaa">@@ -162,7 +163,8 @@ int DARSHAN_DECL(ncmpi_open)(MPI_Comm comm, const char *path,
</span>         file = pnetcdf_file_by_name_setncid(path, (*ncidp));
         if(file)
         {
<span style="background: #ffdddd; color: #000000">-            if(file->file_record->fcounters[PNETCDF_F_OPEN_TIMESTAMP] == 0)
</span><span style="background: #ddffdd; color: #000000">+            if(file->file_record->fcounters[PNETCDF_F_OPEN_TIMESTAMP] == 0 || 
+             file->file_record->fcounters[PNETCDF_F_OPEN_TIMESTAMP] > tm1)
</span>                 file->file_record->fcounters[PNETCDF_F_OPEN_TIMESTAMP] = tm1;
             DARSHAN_MPI_CALL(PMPI_Comm_size)(comm, &comm_size);
             if(comm_size == 1)
</code></pre>

<br>
</li>
<li id="bbc2314e774c28d45e241dbe5d218f70">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-10">
<strong>
darshan-runtime/lib/darshan-posix.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/lib/darshan-posix.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/lib/darshan-posix.c
</span><span style="color: #aaaaaa">@@ -231,7 +231,8 @@ static void posix_shutdown(void);
</span>         file->file_record->counters[POSIX_FOPENS] += 1; \
     else \
         file->file_record->counters[POSIX_OPENS] += 1; \
<span style="background: #ffdddd; color: #000000">-    if(file->file_record->fcounters[POSIX_F_OPEN_TIMESTAMP] == 0) \
</span><span style="background: #ddffdd; color: #000000">+    if(file->file_record->fcounters[POSIX_F_OPEN_TIMESTAMP] == 0 || \
+     file->file_record->fcounters[POSIX_F_OPEN_TIMESTAMP] > __tm1) \
</span>         file->file_record->fcounters[POSIX_F_OPEN_TIMESTAMP] = __tm1; \
     DARSHAN_TIMER_INC_NO_OVERLAP(file->file_record->fcounters[POSIX_F_META_TIME], __tm1, __tm2, file->last_meta_end); \
 } while(0)
<span style="color: #aaaaaa">@@ -278,7 +279,8 @@ static void posix_shutdown(void);
</span>     if(file->last_io_type == DARSHAN_IO_WRITE) \
         file->file_record->counters[POSIX_RW_SWITCHES] += 1; \
     file->last_io_type = DARSHAN_IO_READ; \
<span style="background: #ffdddd; color: #000000">-    if(file->file_record->fcounters[POSIX_F_READ_START_TIMESTAMP] == 0) \
</span><span style="background: #ddffdd; color: #000000">+    if(file->file_record->fcounters[POSIX_F_READ_START_TIMESTAMP] == 0 || \
+     file->file_record->fcounters[POSIX_F_READ_START_TIMESTAMP] > __tm1) \
</span>         file->file_record->fcounters[POSIX_F_READ_START_TIMESTAMP] = __tm1; \
     file->file_record->fcounters[POSIX_F_READ_END_TIMESTAMP] = __tm2; \
     if(file->file_record->fcounters[POSIX_F_MAX_READ_TIME] < __elapsed) { \
<span style="color: #aaaaaa">@@ -329,7 +331,8 @@ static void posix_shutdown(void);
</span>     if(file->last_io_type == DARSHAN_IO_READ) \
         file->file_record->counters[POSIX_RW_SWITCHES] += 1; \
     file->last_io_type = DARSHAN_IO_WRITE; \
<span style="background: #ffdddd; color: #000000">-    if(file->file_record->fcounters[POSIX_F_WRITE_START_TIMESTAMP] == 0) \
</span><span style="background: #ddffdd; color: #000000">+    if(file->file_record->fcounters[POSIX_F_WRITE_START_TIMESTAMP] == 0 || \
+     file->file_record->fcounters[POSIX_F_WRITE_START_TIMESTAMP] > __tm1) \
</span>         file->file_record->fcounters[POSIX_F_WRITE_START_TIMESTAMP] = __tm1; \
     file->file_record->fcounters[POSIX_F_WRITE_END_TIMESTAMP] = __tm2; \
     if(file->file_record->fcounters[POSIX_F_MAX_WRITE_TIME] < __elapsed) { \
</code></pre>

<br>
</li>
<li id="02c44bcb0c30e1642888c0330c8d112c">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-11">
<strong>
darshan-test/example-output/mpi-io-test-ppc64-3.0.0.darshan
</strong>
</a>
<hr>
<pre class="highlight"><code>Binary files /dev/null and b/darshan-test/example-output/mpi-io-test-ppc64-3.0.0.darshan differ
</code></pre>

<br>
</li>
<li id="5ddb4a7da6ac3ae899220a2054c79be0">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-12">
<strong>
darshan-test/example-output/mpi-io-test-x86_64-3.0.0.darshan
</strong>
</a>
<hr>
<pre class="highlight"><code>Binary files /dev/null and b/darshan-test/example-output/mpi-io-test-x86_64-3.0.0.darshan differ
</code></pre>

<br>
</li>
<li id="96c68c4d0376aa9733e6df1aff7dc9f8">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-13">
<strong>
darshan-test/regression/bg-profile-conf/runjob.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-test/regression/bg-profile-conf/runjob.sh
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-test/regression/bg-profile-conf/runjob.sh
</span><span style="color: #aaaaaa">@@ -1,7 +1,7 @@
</span> #!/bin/bash
 
 # submit job and get job id
<span style="background: #ffdddd; color: #000000">-jobid=`qsub --env DARSHAN_LOGFILE=$DARSHAN_LOGFILE --mode c16 --proccount $DARSHAN_DEFAULT_NPROCS -A SSSPPg -t 10 -n 1 --output $DARSHAN_TMP/$$-tmp.out --error $DARSHAN_TMP/$$-tmp.err --debuglog $DARSHAN_TMP/$$-tmp.debuglog "$@"`
</span><span style="background: #ddffdd; color: #000000">+jobid=`qsub --env DARSHAN_LOGFILE=$DARSHAN_LOGFILE --mode c16 --proccount $DARSHAN_DEFAULT_NPROCS -A radix-io -t 10 -n 1 --output $DARSHAN_TMP/$$-tmp.out --error $DARSHAN_TMP/$$-tmp.err --debuglog $DARSHAN_TMP/$$-tmp.debuglog "$@"`
</span> if [ $? -ne 0 ]; then
        echo "Error: failed to qsub $@"
        exit 1
</code></pre>

<br>
</li>
<li id="e483fe4e07b9111852a8f4e3e4e61d16">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-14">
<strong>
darshan-test/regression/run-all.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-test/regression/run-all.sh
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-test/regression/run-all.sh
</span><span style="color: #aaaaaa">@@ -45,6 +45,17 @@ fi
</span> # set up environment for tests according to platform
 source $DARSHAN_TESTDIR/$DARSHAN_PLATFORM/env.sh
 
<span style="background: #ddffdd; color: #000000">+# in case of using LD_PRELOAD, it is possible errors with Darshan symbols
+# (e..g, forgetting to resolve a symbol Darshan wraps using dlsym) can
+# cause arbitrary binaries to crash. We check the output of the true
+# command to successfully identify failures like this and exit
+true_out=`/bin/true 2>&1`
+if [ $? -ne 0 -o -n "$true_out" ]; then
+    echo -n $true_out > tmp
+    echo "environment setup failed"
+    exit 1
+fi
+
</span> failure_count=0
 
 for i in `ls $DARSHAN_TESTDIR/test-cases/*.sh`; do
</code></pre>

<br>
</li>
<li id="54071697bdb74afd518e691935ab92ab">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-15">
<strong>
darshan-test/regression/test-cases/cxxpi.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-test/regression/test-cases/cxxpi.sh
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-test/regression/test-cases/cxxpi.sh
</span><span style="color: #aaaaaa">@@ -3,7 +3,7 @@
</span> PROG=cxxpi
 
 # set log file path; remove previous log if present
<span style="background: #ffdddd; color: #000000">-export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan.gz
</span><span style="background: #ddffdd; color: #000000">+export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan
</span> rm -f ${DARSHAN_LOGFILE}
 
 # compile
</code></pre>

<br>
</li>
<li id="879ee3b75b3b68112858e3c5a60c5a35">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-16">
<strong>
darshan-test/regression/test-cases/fperf-f77.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-test/regression/test-cases/fperf-f77.sh
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-test/regression/test-cases/fperf-f77.sh
</span><span style="color: #aaaaaa">@@ -3,7 +3,7 @@
</span> PROG=fperf-f77
 
 # set log file path; remove previous log if present
<span style="background: #ffdddd; color: #000000">-export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan.gz
</span><span style="background: #ddffdd; color: #000000">+export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan
</span> rm -f ${DARSHAN_LOGFILE}
 
 # compile
</code></pre>

<br>
</li>
<li id="c980cac8551b1b1f8a4a5bb6e26a7f54">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-17">
<strong>
darshan-test/regression/test-cases/fperf-f90.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-test/regression/test-cases/fperf-f90.sh
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-test/regression/test-cases/fperf-f90.sh
</span><span style="color: #aaaaaa">@@ -3,7 +3,7 @@
</span> PROG=fperf-f90
 
 # set log file path; remove previous log if present
<span style="background: #ffdddd; color: #000000">-export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan.gz
</span><span style="background: #ddffdd; color: #000000">+export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan
</span> rm -f ${DARSHAN_LOGFILE}
 
 # compile
</code></pre>

<br>
</li>
<li id="0456dbe6f74a19ea201dea7c0be35e3d">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-18">
<strong>
darshan-test/regression/test-cases/mpi-io-test.sh
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-test/regression/test-cases/mpi-io-test.sh
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-test/regression/test-cases/mpi-io-test.sh
</span><span style="color: #aaaaaa">@@ -3,7 +3,7 @@
</span> PROG=mpi-io-test
 
 # set log file path; remove previous log if present
<span style="background: #ffdddd; color: #000000">-export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan.gz
</span><span style="background: #ddffdd; color: #000000">+export DARSHAN_LOGFILE=$DARSHAN_TMP/${PROG}.darshan
</span> rm -f ${DARSHAN_LOGFILE}
 
 # compile
</code></pre>

<br>
</li>
<li id="36f20111c8470f8bf0a970af1aa5de94">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-19">
<strong>
darshan-util/Makefile.in
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/Makefile.in
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/Makefile.in
</span><span style="color: #aaaaaa">@@ -137,6 +137,7 @@ endif
</span>   install -m 644 $(srcdir)/darshan-pnetcdf-logutils.h $(includedir)
        install -m 644 $(srcdir)/darshan-bgq-logutils.h $(includedir)
        install -m 644 $(srcdir)/darshan-null-logutils.h $(includedir)
<span style="background: #ddffdd; color: #000000">+     install -m 644 $(srcdir)/../darshan-null-log-format.h $(includedir)
</span>   install -m 644 $(srcdir)/../darshan-posix-log-format.h $(includedir)
        install -m 644 $(srcdir)/../darshan-mpiio-log-format.h $(includedir)
        install -m 644 $(srcdir)/../darshan-hdf5-log-format.h $(includedir)
<span style="color: #aaaaaa">@@ -158,7 +159,7 @@ endif
</span> 
 
 clean::
<span style="background: #ffdddd; color: #000000">-     rm -f *.o *.po *.a darshan-analyzer darshan-convert darshan-parser jenkins-hash-gen
</span><span style="background: #ddffdd; color: #000000">+        rm -f *.o *.po *.a darshan-analyzer darshan-convert darshan-diff darshan-parser jenkins-hash-gen
</span> 
 distclean:: clean
        rm -f darshan-runtime-config.h aclocal.m4 autom4te.cache/* config.status config.log Makefile util/bin/darshan-job-summary.pl
</code></pre>

<br>
</li>
<li id="1c6f4778cb1e5e381e17e502561a0932">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-20">
<strong>
darshan-util/configure
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/configure
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/configure
</span><span style="color: #aaaaaa">@@ -3538,7 +3538,7 @@ then
</span>         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
         BZLIB_OLD_LDFLAGS=$LDFLAGS
<span style="background: #ffdddd; color: #000000">-        BZLIB_OLD_CPPFLAGS=$LDFLAGS
</span><span style="background: #ddffdd; color: #000000">+        BZLIB_OLD_CPPFLAGS=$CPPFLAGS
</span>         LDFLAGS="$LDFLAGS -L${BZLIB_HOME}/lib"
         CPPFLAGS="$CPPFLAGS -I${BZLIB_HOME}/include"
 
</code></pre>

<br>
</li>
<li id="eb9ceb07a63a2ccebe3dc5ed6d87d9a7">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-21">
<strong>
darshan-util/darshan-convert-logs.pl
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-convert-logs.pl
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-convert-logs.pl
</span><span style="color: #aaaaaa">@@ -1,4 +1,4 @@
</span><span style="background: #ffdddd; color: #000000">-#!/usr/bin/perl -w
</span><span style="background: #ddffdd; color: #000000">+#!/usr/bin/env perl
</span> 
 #
 # Copyright (C) 2015 University of Chicago.
<span style="color: #aaaaaa">@@ -19,6 +19,8 @@
</span> # jobid2  key1=val1       key2=val2
 #
 
<span style="background: #ddffdd; color: #000000">+use warnings;
+
</span> my $darshan_convert = "./darshan-convert";
 my $jenkins_hash_gen = "./jenkins-hash-gen";
 
</code></pre>

<br>
</li>
<li id="b150bb0039b44a462e2526f9f645591e">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-22">
<strong>
darshan-util/darshan-convert.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-convert.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-convert.c
</span><span style="color: #aaaaaa">@@ -230,8 +230,7 @@ int main(int argc, char **argv)
</span>     darshan_fd outfile;
     int i;
     int mount_count;
<span style="background: #ffdddd; color: #000000">-    char** mnt_pts;
-    char** fs_types;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_mnt_info *mnt_data_array;
</span>     struct darshan_record_ref *rec_hash = NULL;
     struct darshan_record_ref *ref, *tmp;
     char mod_buf[DEF_MOD_BUF_SIZE];
<span style="color: #aaaaaa">@@ -299,7 +298,7 @@ int main(int argc, char **argv)
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmounts(infile, &mnt_pts, &fs_types, &mount_count);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_getmounts(infile, &mnt_data_array, &mount_count);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -308,7 +307,7 @@ int main(int argc, char **argv)
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmounts(outfile, mnt_pts, fs_types, mount_count);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_putmounts(outfile, mnt_data_array, mount_count);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -389,16 +388,8 @@ int main(int argc, char **argv)
</span>     darshan_log_close(infile);
     darshan_log_close(outfile);
 
<span style="background: #ffdddd; color: #000000">-    for(i=0; i<mount_count; i++)
-    {
-        free(mnt_pts[i]);
-        free(fs_types[i]);
-    }
</span>     if(mount_count > 0)
<span style="background: #ffdddd; color: #000000">-    {
-        free(mnt_pts);
-        free(fs_types);
-    }
</span><span style="background: #ddffdd; color: #000000">+        free(mnt_data_array);
</span> 
     HASH_ITER(hlink, rec_hash, ref, tmp)
     {
</code></pre>

<br>
</li>
<li id="0c08409ec4a7facc84b7b99ac6b35e60">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-23">
<strong>
darshan-util/darshan-job-summary/bin/darshan-job-summary.pl.in
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-job-summary/bin/darshan-job-summary.pl.in
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-job-summary/bin/darshan-job-summary.pl.in
</span><span style="color: #aaaaaa">@@ -1,4 +1,4 @@
</span><span style="background: #ffdddd; color: #000000">-#!/usr/bin/perl -w
</span><span style="background: #ddffdd; color: #000000">+#!/usr/bin/env perl
</span> #
 #  (C) 2015 by Argonne National Laboratory.
 #      See COPYRIGHT in top-level directory.
<span style="color: #aaaaaa">@@ -7,6 +7,7 @@
</span> # Set via configure
 my $PREFIX="@prefix@";
 
<span style="background: #ddffdd; color: #000000">+use warnings;
</span> use lib "@prefix@/lib";
 use TeX::Encode;
 use Encode;
</code></pre>

<br>
</li>
<li id="3252e9669561868c6dd243fbab40f81c">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-24">
<strong>
darshan-util/darshan-logutils.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-logutils.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-logutils.c
</span><span style="color: #aaaaaa">@@ -66,6 +66,7 @@ struct darshan_fd_int_state
</span>     struct darshan_dz_state dz;
 };
 
<span style="background: #ddffdd; color: #000000">+static int darshan_mnt_info_cmp(const void *a, const void *b);
</span> static int darshan_log_getheader(darshan_fd fd);
 static int darshan_log_putheader(darshan_fd fd);
 static int darshan_log_seek(darshan_fd fd, off_t offset);
<span style="color: #aaaaaa">@@ -374,14 +375,14 @@ int darshan_log_putexe(darshan_fd fd, char *buf)
</span> 
 /* darshan_log_getmounts()
  * 
<span style="background: #ffdddd; color: #000000">- * retrieves mount table information from the log. Note that mnt_pts and
- * fs_types are arrays that will be allocated by the function and must be
- * freed by the caller. count will indicate the size of the arrays
</span><span style="background: #ddffdd; color: #000000">+ * retrieves mount table information from the log. Note that mnt_data_array
+ * is an array that will be allocated by the function and must be
+ * freed by the caller. count will indicate the size of the array
</span>  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
-    char*** fs_types, int* count)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_getmounts(darshan_fd fd, struct darshan_mnt_info **mnt_data_array,
+    int* count)
</span> {
     struct darshan_fd_int_state *state = fd->state;
     char *pos;
<span style="color: #aaaaaa">@@ -416,34 +417,27 @@ int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
</span>     }
 
     /* allocate output arrays */
<span style="background: #ffdddd; color: #000000">-    *mnt_pts = malloc((*count)*sizeof(char*));
-    assert(*mnt_pts);
-    *fs_types = malloc((*count)*sizeof(char*));
-    assert(*fs_types);
</span><span style="background: #ddffdd; color: #000000">+    *mnt_data_array = malloc((*count)*sizeof(**mnt_data_array));
+    assert(*mnt_data_array);
</span> 
<span style="background: #ffdddd; color: #000000">-    /* work backwards through the table and parse each line (except for
</span><span style="background: #ddffdd; color: #000000">+    /* work through the table and parse each line (except for
</span>      * first, which holds command line information)
      */
<span style="background: #ffdddd; color: #000000">-    while((pos = strrchr(state->exe_mnt_data, '\n')) != NULL)
</span><span style="background: #ddffdd; color: #000000">+    pos = state->exe_mnt_data;
+    while((pos = strchr(pos, '\n')) != NULL)
</span>     {
<span style="background: #ffdddd; color: #000000">-        /* overestimate string lengths */
-        (*mnt_pts)[array_index] = malloc(DARSHAN_EXE_LEN);
-        assert((*mnt_pts)[array_index]);
-        (*fs_types)[array_index] = malloc(DARSHAN_EXE_LEN);
-        assert((*fs_types)[array_index]);
-
-        ret = sscanf(++pos, "%s\t%s", (*fs_types)[array_index],
-            (*mnt_pts)[array_index]);
</span><span style="background: #ddffdd; color: #000000">+        ret = sscanf(++pos, "%s\t%s", (*mnt_data_array)[array_index].mnt_type,
+            (*mnt_data_array)[array_index].mnt_path);
</span>         if(ret != 2)
         {
             fprintf(stderr, "Error: poorly formatted mount table in darshan log file.\n");
             return(-1);
         }
<span style="background: #ffdddd; color: #000000">-        pos--;
-        *pos = '\0';
</span>         array_index++;
     }
 
<span style="background: #ddffdd; color: #000000">+    qsort(*mnt_data_array, *count, sizeof(**mnt_data_array), darshan_mnt_info_cmp);
+
</span>     return(0);
 }
 
<span style="color: #aaaaaa">@@ -456,7 +450,8 @@ int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
</span>  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_putmounts(darshan_fd fd, char** mnt_pts, char** fs_types, int count)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_putmounts(darshan_fd fd, struct darshan_mnt_info *mnt_data_array,
+    int count)
</span> {
     struct darshan_fd_int_state *state = fd->state;
     int i;
<span style="color: #aaaaaa">@@ -472,7 +467,7 @@ int darshan_log_putmounts(darshan_fd fd, char** mnt_pts, char** fs_types, int co
</span>     tmp = mnt_dat;
     for(i=count-1; i>=0; i--)
     {
<span style="background: #ffdddd; color: #000000">-        sprintf(line, "\n%s\t%s", fs_types[i], mnt_pts[i]);
</span><span style="background: #ddffdd; color: #000000">+        sprintf(line, "\n%s\t%s", mnt_data_array[i].mnt_type, mnt_data_array[i].mnt_path);
</span> 
         memcpy(tmp, line, strlen(line));
         tmp += strlen(line);
<span style="color: #aaaaaa">@@ -827,6 +822,19 @@ void darshan_log_close(darshan_fd fd)
</span> 
 /* **************************************************** */
 
<span style="background: #ddffdd; color: #000000">+static int darshan_mnt_info_cmp(const void *a, const void *b)
+{
+    struct darshan_mnt_info *m_a = (struct darshan_mnt_info *)a;
+    struct darshan_mnt_info *m_b = (struct darshan_mnt_info *)b;
+
+    if(strlen(m_a->mnt_path) > strlen(m_b->mnt_path))
+        return(-1);
+    else if(strlen(m_a->mnt_path) < strlen(m_b->mnt_path))
+        return(1);
+    else
+        return(0);
+}
+
</span> /* read the header of the darshan log and set internal fd data structures
  * NOTE: this is the only portion of the darshan log that is uncompressed
  *
</code></pre>

<br>
</li>
<li id="a2a75853fe5e7389f09f30a568592148">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-25">
<strong>
darshan-util/darshan-logutils.h
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-logutils.h
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-logutils.h
</span><span style="color: #aaaaaa">@@ -7,7 +7,7 @@
</span> #ifndef __DARSHAN_LOG_UTILS_H
 #define __DARSHAN_LOG_UTILS_H
 
<span style="background: #ffdddd; color: #000000">-#include <linux/limits.h>
</span><span style="background: #ddffdd; color: #000000">+#include <limits.h>
</span> #include <zlib.h>
 #ifdef HAVE_LIBBZ2
 #include <bzlib.h>
<span style="color: #aaaaaa">@@ -47,6 +47,12 @@ struct darshan_record_ref
</span>     UT_hash_handle hlink;
 };
 
<span style="background: #ddffdd; color: #000000">+struct darshan_mnt_info
+{
+    char mnt_type[DARSHAN_EXE_LEN];
+    char mnt_path[DARSHAN_EXE_LEN];
+};
+
</span> /* functions to be implemented by each module for integration with
  * darshan log file utilities (e.g., parser & convert tools)
  */
<span style="color: #aaaaaa">@@ -116,10 +122,10 @@ int darshan_log_getjob(darshan_fd fd, struct darshan_job *job);
</span> int darshan_log_putjob(darshan_fd fd, struct darshan_job *job);
 int darshan_log_getexe(darshan_fd fd, char *buf);
 int darshan_log_putexe(darshan_fd fd, char *buf);
<span style="background: #ffdddd; color: #000000">-int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
-    char*** fs_types, int* count);
-int darshan_log_putmounts(darshan_fd fd, char** mnt_pts,
-    char** fs_types, int count);
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_getmounts(darshan_fd fd, struct darshan_mnt_info **mnt_data_array,
+    int* count);
+int darshan_log_putmounts(darshan_fd fd, struct darshan_mnt_info *mnt_data_array,
+    int count);
</span> int darshan_log_gethash(darshan_fd fd, struct darshan_record_ref **hash);
 int darshan_log_puthash(darshan_fd fd, struct darshan_record_ref *hash);
 int darshan_log_getmod(darshan_fd fd, darshan_module_id mod_id,
</code></pre>

<br>
</li>
<li id="cc28d82bed8d943c98f0976e06156c3f">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-26">
<strong>
darshan-util/darshan-parser.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-parser.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-parser.c
</span><span style="color: #aaaaaa">@@ -205,8 +205,7 @@ int main(int argc, char **argv)
</span>     struct darshan_record_ref *rec_hash = NULL;
     struct darshan_record_ref *ref, *tmp_ref;
     int mount_count;
<span style="background: #ffdddd; color: #000000">-    char** mnt_pts;
-    char** fs_types;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_mnt_info *mnt_data_array;
</span>     time_t tmp_time = 0;
     char *token;
     char *save;
<span style="color: #aaaaaa">@@ -248,7 +247,7 @@ int main(int argc, char **argv)
</span>     }
 
     /* get the mount information for this log */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmounts(fd, &mnt_pts, &fs_types, &mount_count);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_getmounts(fd, &mnt_data_array, &mount_count);
</span>     if(ret < 0)
     {
         darshan_log_close(fd);
<span style="color: #aaaaaa">@@ -318,7 +317,8 @@ int main(int argc, char **argv)
</span>     printf("# -------------------------------------------------------\n");
     for(i=0; i<mount_count; i++)
     {
<span style="background: #ffdddd; color: #000000">-        printf("# mount entry:\t%s\t%s\n", mnt_pts[i], fs_types[i]);
</span><span style="background: #ddffdd; color: #000000">+        printf("# mount entry:\t%s\t%s\n", mnt_data_array[i].mnt_path,
+            mnt_data_array[i].mnt_type);
</span>     }
 
     if(mask & OPTION_BASE)
<span style="color: #aaaaaa">@@ -417,10 +417,11 @@ int main(int argc, char **argv)
</span>             /* get mount point and fs type associated with this record */
             for(j=0; j<mount_count; j++)
             {
<span style="background: #ffdddd; color: #000000">-                if(strncmp(mnt_pts[j], ref->rec.name, strlen(mnt_pts[j])) == 0)
</span><span style="background: #ddffdd; color: #000000">+                if(strncmp(mnt_data_array[j].mnt_path, ref->rec.name,
+                    strlen(mnt_data_array[j].mnt_path)) == 0)
</span>                 {
<span style="background: #ffdddd; color: #000000">-                    mnt_pt = mnt_pts[j];
-                    fs_type = fs_types[j];
</span><span style="background: #ddffdd; color: #000000">+                    mnt_pt = mnt_data_array[j].mnt_path;
+                    fs_type = mnt_data_array[j].mnt_type;
</span>                     break;
                 }
             }
<span style="color: #aaaaaa">@@ -557,7 +558,7 @@ int main(int argc, char **argv)
</span>             printf("# I/O timing for unique files (seconds):\n");
             printf("# ...........................\n");
             printf("# unique files: slowest_rank_io_time: %lf\n", pdata.slowest_rank_time);
<span style="background: #ffdddd; color: #000000">-            printf("# unique files: slowest_rank_meta_time: %lf\n", pdata.slowest_rank_meta_time);
</span><span style="background: #ddffdd; color: #000000">+            printf("# unique files: slowest_rank_meta_only_time: %lf\n", pdata.slowest_rank_meta_time);
</span>             printf("# unique files: slowest rank: %d\n", pdata.slowest_rank_rank);
             printf("#\n");
             printf("# I/O timing for shared files (seconds):\n");
<span style="color: #aaaaaa">@@ -633,15 +634,9 @@ cleanup:
</span>     }
 
     /* free mount info */
<span style="background: #ffdddd; color: #000000">-    for(i=0; i<mount_count; i++)
-    {
-        free(mnt_pts[i]);
-        free(fs_types[i]);
-    }
</span>     if(mount_count > 0)
     {
<span style="background: #ffdddd; color: #000000">-        free(mnt_pts);
-        free(fs_types);
</span><span style="background: #ddffdd; color: #000000">+        free(mnt_data_array);
</span>     }
 
     return(ret);
<span style="color: #aaaaaa">@@ -1355,7 +1350,6 @@ void calc_perf(perf_data_t *pdata,
</span>     if (pdata->slowest_rank_time + pdata->shared_time_by_slowest)
     pdata->agg_perf_by_slowest = ((double)pdata->total_bytes / 1048576.0) /
                                      (pdata->slowest_rank_time +
<span style="background: #ffdddd; color: #000000">-                                      pdata->slowest_rank_meta_time +
</span>                                       pdata->shared_time_by_slowest);
 
     return;
</code></pre>

<br>
</li>
<li id="1ce2d3a7bb8a17f983b57ace2a62bbfd">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-27">
<strong>
darshan-util/doc/darshan-util.txt
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/doc/darshan-util.txt
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/doc/darshan-util.txt
</span><span style="color: #aaaaaa">@@ -394,7 +394,7 @@ Job performance information can be generated using the `--perf` command-line opt
</span> # I/O timing for unique files (seconds):
 # ...........................
 # unique files: slowest_rank_io_time: 0.000000
<span style="background: #ffdddd; color: #000000">-# unique files: slowest_rank_meta_time: 0.000000
</span><span style="background: #ddffdd; color: #000000">+# unique files: slowest_rank_meta_only_time: 0.000000
</span> # unique files: slowest_rank: 0
 #
 # I/O timing for shared files (seconds):
<span style="color: #aaaaaa">@@ -430,7 +430,7 @@ type of file access.
</span> 
 * unique files: slowest_rank_io_time: total I/O time for unique files
   (including both metadata + data transfer time)
<span style="background: #ffdddd; color: #000000">-* unique files: slowest_rank_meta_time: metadata time for unique files
</span><span style="background: #ddffdd; color: #000000">+* unique files: slowest_rank_meta_only_time: metadata time for unique files
</span> * unique files: slowest_rank: the rank of the slowest process
 
 .I/O timing for shared files
</code></pre>

<br>
</li>
<li id="a18f57f424e83727097db04b11d0fe62">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c#diff-28">
<strong>
maint/config/check_bzlib.m4
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/maint/config/check_bzlib.m4
</span><span style="background: #ddffdd; color: #000000">+++ b/maint/config/check_bzlib.m4
</span><span style="color: #aaaaaa">@@ -57,7 +57,7 @@ if test -z "${DISABLE_BZLIB}"
</span> then
         AC_MSG_RESULT(yes)
         BZLIB_OLD_LDFLAGS=$LDFLAGS
<span style="background: #ffdddd; color: #000000">-        BZLIB_OLD_CPPFLAGS=$LDFLAGS
</span><span style="background: #ddffdd; color: #000000">+        BZLIB_OLD_CPPFLAGS=$CPPFLAGS
</span>         LDFLAGS="$LDFLAGS -L${BZLIB_HOME}/lib"
         CPPFLAGS="$CPPFLAGS -I${BZLIB_HOME}/include"
         AC_LANG_SAVE
</code></pre>

<br>
</li>

</div>
<div class="footer" style="margin-top: 10px">
<p style="color: #777; font-size: small">

<br>
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/1c2df3e155417529fe02eeddc35f0c82c5ead76f...3266825fa44dbc8e1cefbe99d189ae491d1ed42c">View it on GitLab</a>.
<br>
You're receiving this email because of your account on xgitlab.cels.anl.gov.
If you'd like to receive fewer emails, you can
adjust your notification settings.

</p>
</div>
</body>
</html>