Skip to content

Commit a5594d4

Browse files
authored
Merge pull request #7441 from raffenet/4.3.x-fixes
[4.3.x] a batch of backported fixes Approved-by: Hui Zhou <[email protected]>
2 parents 5335f4b + 947ad39 commit a5594d4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+567
-469
lines changed

CHANGES

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
1+
===============================================================================
2+
Changes in 4.3.1
3+
===============================================================================
4+
# Fix initialization in GPU-aware builds when no devices are present
5+
6+
# Fix internal pmix.h header conflict when building with an external
7+
PMIx library.
8+
9+
# Fix build issue with Slurm by removing dependency on libslurm and
10+
always using internal logic for parsing the Slurm hostfile.
11+
12+
# Fix potential stale GPU IPC handle usage resulting in data corruption
13+
or crashes
14+
15+
# Update XPMEM thresholds to avoid excessive buffer mapping overhead
16+
17+
# Fix potential hang in ROMIO when setting info hints on certain files
18+
19+
# Improved detection of incompatible PMI[x] client/server configuration
20+
21+
# Fix use of PMIX_PREFIX attribute for certain versions of OpenPMIx
22+
23+
# Fix Intel GPU output with MPIR_CVAR_DEBUG_SUMMARY
24+
25+
# Fix F08 binding compilation with nvfortran
26+
27+
# Fix line continuation Hydra's --configfile option
28+
29+
# Fix valgrind uninitialized read warnings in ch3
30+
31+
# Fix missing mpixxx_opts.conf file with help text for mpicc and friends
32+
33+
# Fixes for several compiler warnings
34+
135
===============================================================================
236
Changes in 4.3.0
337
===============================================================================

Makefile.am

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ if BUILD_PROFILING_LIB
163163
# don't contribute any PMPI symbols.
164164
lib_LTLIBRARIES += lib/lib@[email protected]
165165
lib_lib@PMPIABILIBNAME@_la_SOURCES = $(mpi_abi_sources) $(mpi_f77_sources) $(mpi_core_sources)
166-
lib_lib@PMPIABILIBNAME@_la_LDFLAGS = $(external_ldflags) $(ABIVERSIONFLAGS)
166+
lib_lib@PMPIABILIBNAME@_la_LDFLAGS = $(external_ldflags) $(ABI_ABIVERSIONFLAGS)
167167
lib_lib@PMPIABILIBNAME@_la_CPPFLAGS = $(AM_CPPFLAGS) -DF77_USE_PMPI $(abi_cppflags)
168168
lib_lib@PMPIABILIBNAME@_la_LIBADD = $(external_libs) $(pmpi_convenience_libs)
169169
EXTRA_lib_lib@PMPIABILIBNAME@_la_DEPENDENCIES = $(pmpi_convenience_libs)
@@ -173,7 +173,7 @@ EXTRA_lib_lib@PMPIABILIBNAME@_la_DEPENDENCIES = $(pmpi_convenience_libs)
173173
# confused. (see https://bugzilla.redhat.com/show_bug.cgi?id=91110)
174174
lib_LTLIBRARIES += lib/lib@[email protected]
175175
lib_lib@MPIABILIBNAME@_la_SOURCES = $(mpi_abi_sources)
176-
lib_lib@MPIABILIBNAME@_la_LDFLAGS = $(ABIVERSIONFLAGS)
176+
lib_lib@MPIABILIBNAME@_la_LDFLAGS = $(ABI_ABIVERSIONFLAGS)
177177
lib_lib@MPIABILIBNAME@_la_CPPFLAGS = $(AM_CPPFLAGS) -DMPICH_MPI_FROM_PMPI $(abi_cppflags)
178178
lib_lib@MPIABILIBNAME@_la_LIBADD = lib/lib@[email protected] $(mpi_convenience_libs)
179179

@@ -185,7 +185,7 @@ else !BUILD_PROFILING_LIB
185185

186186
lib_LTLIBRARIES += lib/lib@[email protected]
187187
lib_lib@MPIABILIBNAME@_la_SOURCES = $(mpi_abi_sources) $(mpi_core_sources)
188-
lib_lib@MPIABILIBNAME@_la_LDFLAGS = $(external_ldflags) $(ABIVERSIONFLAGS)
188+
lib_lib@MPIABILIBNAME@_la_LDFLAGS = $(external_ldflags) $(ABI_ABIVERSIONFLAGS)
189189
lib_lib@MPIABILIBNAME@_la_CPPFLAGS = $(AM_CPPFLAGS) $(abi_cppflags)
190190
lib_lib@MPIABILIBNAME@_la_LIBADD = $(external_libs) $(pmpi_convenience_libs) $(mpi_convenience_libs)
191191
EXTRA_lib_lib@MPIABILIBNAME@_la_DEPENDENCIES = $(pmpi_convenience_libs) $(mpi_convenience_libs)

confdb/aclocal_fc.m4

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1268,6 +1268,44 @@ AC_DEFUN([PAC_FC_CHECK_IGNORE_TKR],[
12681268
AC_LANG_POP(Fortran)
12691269
])
12701270

1271+
dnl
1272+
dnl PAC_FC_CHECK_IGNORE_TKR_D check directives to ignore "DEVICE" attribute.
1273+
dnl set pac_fc_ignore_tkr_d to a type if supported, otherwise, no.
1274+
dnl
1275+
AC_DEFUN([PAC_FC_CHECK_IGNORE_TKR_D],[
1276+
AC_LANG_PUSH(Fortran)
1277+
AC_MSG_CHECKING([directives for Fortran compiler to ignore TKR(d) check])
1278+
pac_fc_ignore_tkr_d=no
1279+
for a in dir ; do
1280+
case $a in
1281+
dir)
1282+
# flang
1283+
decl='!DIR$ IGNORE_TKR(d) buf'
1284+
;;
1285+
esac
1286+
1287+
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
1288+
program main
1289+
IMPLICIT NONE
1290+
INTERFACE
1291+
SUBROUTINE FUNC_A(buf)
1292+
TYPE(*), DIMENSION(..) :: buf
1293+
$decl
1294+
END SUBROUTINE
1295+
END INTERFACE
1296+
1297+
REAL A(10)
1298+
CALL FUNC_A(A)
1299+
end
1300+
])],[pac_fc_ignore_tkr_d=$a],[])
1301+
if test $pac_fc_ignore_tkr_d != no ; then
1302+
break
1303+
fi
1304+
done
1305+
AC_MSG_RESULT([$pac_fc_ignore_tkr_d])
1306+
AC_LANG_POP(Fortran)
1307+
])
1308+
12711309
dnl
12721310
dnl PAC_FC_ISO_C_BINDING check whether ISO_C_BINDING is supported.
12731311
dnl set pac_fc_iso_c_binding to yes if it's supported, otherwise, no.

configure.ac

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,8 +495,10 @@ AC_ARG_ENABLE(versioning,
495495

496496
if test "$enable_versioning" = "yes" ; then
497497
ABIVERSIONFLAGS="-version-info \$(ABIVERSION)"
498+
ABI_ABIVERSIONFLAGS="-version-info libmpi_abi_so_verion_m4"
498499
else
499500
ABIVERSIONFLAGS="-avoid-version"
501+
ABI_ABIVERSIONFLAGS="-avoid-version"
500502
fi
501503
export ABIVERSIONFLAGS
502504
AC_SUBST(ABIVERSIONFLAGS)
@@ -4212,6 +4214,7 @@ fi
42124214

42134215
if test "$enable_f08" = "yes" ; then
42144216
PAC_FC_CHECK_REAL128
4217+
PAC_FC_CHECK_IGNORE_TKR_D
42154218
if test -z "$PYTHON" ; then
42164219
if test -f src/binding/fortran/use_mpi_f08/mpi_f08.f90 ; then
42174220
AC_MSG_NOTICE([Using pre-generated Fortran mpi_f08 binding source. To prevent issues, install Python 3 and rerun configure.])
@@ -4223,6 +4226,9 @@ if test "$enable_f08" = "yes" ; then
42234226
if test "$pac_fc_has_real128" = "no" ; then
42244227
cmd_f08="$cmd_f08 -no-real128"
42254228
fi
4229+
if test "$pac_fc_ignore_tkr_d" != "no" ; then
4230+
cmd_f08="$cmd_f08 -ignore-tkr-d=$pac_fc_ignore_tkr_d"
4231+
fi
42264232
if test "$enable_romio" = "no" ; then
42274233
cmd_f08="$cmd_f08 -no-mpiio"
42284234
fi

doc/wiki/source_code/Creating_A_Release.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ cp -v path/to/{mpich,hydra,libpmi,mpich-testsuite}-X.Y.Z.tar.gz downloads/X.Y.Z/
178178
Shortlog can be generated with, e.g.,
179179

180180
```
181-
git log --no-merges --format="format:[%cd] %s" --date=short v3.4.2..v4.0a2 > shortlog
181+
git log --no-merges --format=reference --date=short v4.2.3..v4.3.0 > shortlog
182182
```
183183

184184
- For full release update documentation as well: README.txt,

maint/extracterrmsgs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -875,7 +875,7 @@ sub ExpandDir {
875875
elsif (-d "$dir/$filename") {
876876
$otherdirs[$#otherdirs+1] = "$dir/$filename";
877877
}
878-
elsif ($filename =~ /(.*\.[chi])(pp){0,1}$/) {
878+
elsif ($filename =~ /(.*\.([chi])(pp){0,1}|inc)$/) {
879879
# Test for both Unix- and Windows-style directory separators
880880
if (!defined($skipFiles{"$dir/$filename"}) &&
881881
!defined($skipFiles{"$dir\\$filename"})) {

maint/local_python/binding_c.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1106,7 +1106,7 @@ def out_can_be_undefined(p):
11061106
G.out.append("int ret = " + static_call + ";")
11071107
for l in post_filters:
11081108
G.out.append(l)
1109-
if re.match(r'MPI_(Init|Init_thread|Session_init)$', func_name, re.IGNORECASE):
1109+
if re.match(r'MPI_(Init|Init_thread|Session_init)|MPI_T_init_thread$', func_name, re.IGNORECASE):
11101110
G.out.append("ABI_init_builtins();")
11111111
G.out.append("return ret;")
11121112
G.out.append("DEDENT")

maint/local_python/binding_f08.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,10 @@ def dump_interface_function(func, name, c_name, is_large):
879879
def dump_mpi_f08(func, is_large):
880880
f08_mapping = get_kind_map('F08', is_large)
881881

882+
def dump_ignore_tkr_d(name, out):
883+
if G.opts['ignore-tkr-d'] == 'dir': # e.g. nvfortran
884+
out.append("!DIR$ IGNORE_TKR(d) " + name)
885+
882886
uses = {}
883887
f_param_list = []
884888
decl_list = []
@@ -889,6 +893,8 @@ def dump_mpi_f08(func, is_large):
889893
f_param_list.append(p['name'])
890894
decl = get_F_decl(p, f08_mapping)
891895
decl_list.append(decl)
896+
if 'ignore-tkr-d' in G.opts and p['kind'] == 'BUFFER':
897+
dump_ignore_tkr_d(p['name'], decl_list)
892898
check_decl_uses(decl, uses)
893899
if 'return' not in func:
894900
f_param_list.append("ierror")

maint/local_python/info_hints.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ def collect_info_hint_blocks(root_dir):
1010
"""Collect INFO_HINT_BLOCKS from source files and return a function-name-keyed dictionary"""
1111
infos_by_funcname = {}
1212

13-
files = subprocess.check_output("find %s -name '*.[ch]' |xargs grep -l BEGIN_INFO_HINT_BLOCK" % root_dir, shell=True).splitlines()
13+
# xargs may process files in batches and return a non-zero exit code if grep comes up empty
14+
# use "|| true" to avoid terminating the script in those instances
15+
# https://stackoverflow.com/questions/26540813/got-exit-code-123-in-find-xargs-grep
16+
files = subprocess.check_output(
17+
"find %s -name '*.[ch]' |xargs grep -l BEGIN_INFO_HINT_BLOCK || true" % root_dir,
18+
shell=True).splitlines()
1419
for f in files:
1520
infos = parse_info_block(f)
1621
for info in infos:

maint/version.m4

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# changing this by playing with diversions, but then we would probably be
1515
# playing with autotools-fire.
1616

17-
m4_define([MPICH_VERSION_m4],[4.3.0])dnl
17+
m4_define([MPICH_VERSION_m4],[4.3.1rc1])dnl
1818
m4_define([MPICH_RELEASE_DATE_m4],[unreleased development copy])dnl
1919

2020
# For libtool ABI versioning rules see:
@@ -40,4 +40,7 @@ m4_define([MPICH_RELEASE_DATE_m4],[unreleased development copy])dnl
4040
# last version 4.3.0 - 17:0:5
4141
m4_define([libmpi_so_version_m4],[0:0:0])dnl
4242

43+
# libmpi_abi.so version
44+
m4_define([libmpi_abi_so_version_m4],[1:0:0])dnl
45+
4346
[#] end of __file__

0 commit comments

Comments
 (0)